日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P1262_美帝的间谍网络被我部捕获!

發(fā)布時(shí)間:2025/3/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P1262_美帝的间谍网络被我部捕获! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題面

這道題太神了吧,從昨晚七點(diǎn)半做到今天下午兩點(diǎn).

我經(jīng)歷了以下折騰(以下內(nèi)容可跳過):

  • 一開始想的是用Tarjan縮點(diǎn),然后以可以被收買的間諜為起點(diǎn)跑最短路,通過路徑染色,讓一條路徑上的點(diǎn)的權(quán)值等于起點(diǎn)(也就是可以被收買的美國間諜的編號),然后枚舉每一個(gè)點(diǎn),用它對應(yīng)的路徑,累加權(quán)值得到答案,如果有點(diǎn)的權(quán)值為正無窮,那么就說明有間諜無法收買,再掃一遍染色數(shù)組找出編號最小的點(diǎn)輸出NO.

這種方式貌似可以,但是在跑最短路的時(shí)候,松弛操作會把權(quán)值更小的路徑更新進(jìn)來,但是這條最短路可能是無法確保跑向權(quán)值更大的點(diǎn)的前綴點(diǎn)的,所以說會導(dǎo)致權(quán)值反而更大.這種方法最高得了52分.

比如下面這張圖:

1,2,3,4號點(diǎn)明顯是個(gè)強(qiáng)聯(lián)通分量,收買這個(gè)分量的代價(jià)為10.

5號點(diǎn)也是一個(gè)強(qiáng)連通分量,收買它的代價(jià)為20.

該圖只有從5號點(diǎn)開始,才可以遍歷完所有的點(diǎn),總代價(jià)為20.

但是在跑最短路時(shí),進(jìn)入縮過點(diǎn)后的1,2,3,4節(jié)點(diǎn)后,會把這個(gè)點(diǎn)的權(quán)值松弛為10,但是這個(gè)10是無法跑完整個(gè)圖的,這也導(dǎo)致總代價(jià)變?yōu)榱?0;

  • 然后我甚至想縮點(diǎn)之后跑一邊最小生成樹,但是算了下這樣做會超時(shí).

  • 之后我又想好了好久,和zxs大佬在中午恰飯的時(shí)候交流了下這道題,才想出來可以記錄下所有入度為0的點(diǎn),然后累加這些點(diǎn)的權(quán)值.這是因?yàn)槿攵葹?的點(diǎn)是一定要被收買的,不然就無法遍歷完全圖,如果有間諜點(diǎn)無法被收買而且無法被其他間諜告發(fā),就輸出NO.

還有一些細(xì)節(jié)在代碼里解釋罷,各位在閱讀我的變量名時(shí)只用看下劃線后的部分.

代碼:

#include<cstdio> #include<cstring> #include<algorithm> #include<stack> #include<queue>using namespace std;stack<int>s;struct edge {int to,next; }e[10010];int OddToThePeoplesVolunteerArmy_n,GreatSoviet_p,TheSovietUnion_CntSize,PeoplesRupublic_TimeCnt,YpaForOurGreatMotherland_r,TheDefenderOfMoscow_size,TheInternationalMustCometrue_ans; int head[10010],dfn[10010],low[10010],indu[10010],dis[10010],color[10010],Nodedis[10010]; bool flag[10010];void EdgeAdd(int,int); void Tarjan(int);int main() {memset(head,-1,sizeof(head));memset(Nodedis,0x3f,sizeof(Nodedis));memset(dis,0x3f,sizeof(dis));scanf("%d%d",&OddToThePeoplesVolunteerArmy_n,&GreatSoviet_p);for(int _=1;_<=GreatSoviet_p;_++){int id,USAIsRubbish;scanf("%d%d",&id,&USAIsRubbish);dis[id]=USAIsRubbish;}scanf("%d",&YpaForOurGreatMotherland_r);for(int _=1;_<=YpaForOurGreatMotherland_r;_++){int father,son;scanf("%d%d",&father,&son);EdgeAdd(father,son);}for(int _=1;_<=OddToThePeoplesVolunteerArmy_n;_++){if(dfn[_]==0&&dis[_]!=0x3f3f3f3f)//把可以收買的美國間諜進(jìn)入Tarjan縮點(diǎn),這樣縮出來的點(diǎn)才能夠被遍歷.{Tarjan(_);}}for(int _=1;_<=OddToThePeoplesVolunteerArmy_n;_++)//縮完點(diǎn)后如果存在無法被收買,又無法被其它間諜指控的點(diǎn),就說明無法收買所有間諜.{if(dfn[_]==0){printf("NO\n%d\n",_);return 0;}}for(int _=1;_<=OddToThePeoplesVolunteerArmy_n;_++){for(int __=head[_];__!=-1;__=e[__].next){int to=e[__].to;if(color[_]!=color[to]){indu[color[to]]++;//統(tǒng)計(jì)入度.}}}for(int _=1;_<=TheSovietUnion_CntSize;_++){if(indu[_]==0)//累加必須收買的間諜的代價(jià).{TheInternationalMustCometrue_ans+=Nodedis[_]; // printf("Nodedis:%d\n",Nodedis[_]);}}printf("YES\n%d\n",TheInternationalMustCometrue_ans); return 0; }void EdgeAdd(int from,int to) {e[++TheDefenderOfMoscow_size].to=to;e[TheDefenderOfMoscow_size].next=head[from];head[from]=TheDefenderOfMoscow_size; }void Tarjan(int FuckTrump_from) {dfn[FuckTrump_from]=low[FuckTrump_from]=++PeoplesRupublic_TimeCnt;s.push(FuckTrump_from);flag[FuckTrump_from]=true;for(int _=head[FuckTrump_from];_!=-1;_=e[_].next){int to=e[_].to;if(dfn[to]==0){Tarjan(to);low[FuckTrump_from]=min(low[FuckTrump_from],low[to]);}else if(flag[to]==true){low[FuckTrump_from]=min(low[FuckTrump_from],dfn[to]);}}if(dfn[FuckTrump_from]==low[FuckTrump_from]){TheSovietUnion_CntSize++;while(!s.empty()){int RedAmryIsTheStrongest_temp=s.top();s.pop();flag[RedAmryIsTheStrongest_temp]=false;color[RedAmryIsTheStrongest_temp]=TheSovietUnion_CntSize;Nodedis[TheSovietUnion_CntSize]=min(Nodedis[TheSovietUnion_CntSize],dis[RedAmryIsTheStrongest_temp]);//縮點(diǎn)后的點(diǎn)的代價(jià)為原來的環(huán)的代價(jià)中最小的那個(gè)代價(jià).color[RedAmryIsTheStrongest_temp]=TheSovietUnion_CntSize;//染色.if(RedAmryIsTheStrongest_temp==FuckTrump_from)break;}} }

轉(zhuǎn)載于:https://www.cnblogs.com/Lemir3/p/11097721.html

總結(jié)

以上是生活随笔為你收集整理的P1262_美帝的间谍网络被我部捕获!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 不卡在线 | 国产精品呻吟久久 | 成年人小视频在线观看 | 欧美性做爰大片免费 | 在线成人一区二区 | 99re中文字幕| 欧美日韩精品一区二区三区视频播放 | 日韩国产欧美一区二区三区 | 人人妻人人澡人人爽精品日本 | 午夜精品久久久久久毛片 | 亚洲私人影院 | 欧美激情动态图 | 永久在线观看 | 国产午夜性春猛交ⅹxxx | 香蕉视频国产 | 99久久精品免费看国产 | 91麻豆一区二区 | 亚洲av成人精品一区二区三区在线播放 | 日韩αv| 日韩av在线观看免费 | 中文字幕人乱码中文字 | 性一交一乱一精一晶 | 99爱免费视频 | 91精品观看 | 国产精品一区二区在线看 | 亚洲一卡二卡三卡 | 嫩模一区二区三区 | 久久爱伊人| 自拍在线视频 | 伊人久久一区二区三区 | 国产精品二 | 寡妇av| 污污的网站在线免费观看 | 国产老熟妇精品观看 | 久久久久夜 | 免费黄av | 久久久久久久久久电影 | 色综合网站 | 狠狠干夜夜爽 | 91蝌蚪网 | 国产一区色 | 亚洲天堂av女优 | 两口子交换真实刺激高潮 | 亚洲无毛视频 | 亚州精品国产精品乱码不99按摩 | 春色激情 | 成人黄色大片在线观看 | 中文精品久久久久人妻不卡 | 一道本在线 | 国产影视一区二区三区 | 九九综合久久 | 亚洲h动漫| 久久看看 | 成人国产精品一区 | 色伊人 | 99re免费视频精品全部 | 中文字幕人妻互换av久久 | 午夜在线视频观看 | 尤果网福利视频在线观看 | 男女黄床上色视频免费的软件 | 日本伊人影院 | 无码国产精品96久久久久 | 欧美在线观看网站 | 欧美日韩一区二区三区免费 | 男男做的视频 | 日韩视频网 | 超碰av在线免费观看 | 高跟av | 狂野少女电影在线观看国语版免费 | 亚洲三级在线 | 神马久久影院 | 性高跟丝袜xxxxhd | 免费黄毛片 | 亚洲精品天堂在线观看 | 亚洲v日韩v综合v精品v | 1024国产在线 | 黄色一级免费片 | 国产91久久精品一区二区 | 91视频首页 | 久久国产热 | 91精品国产欧美一区二区成人 | 黄色大视频 | 99热伊人 | 亚洲午夜精品久久久久久浪潮 | 中国老头同性xxxxx | 黄色大片一级 | 天天摸天天干天天操 | 国产一级视频在线播放 | 黄色爱爱视频 | 国产精品高潮呻吟视频 | 日韩精品欧美在线 | 99久久久无码国产精品免费 | 一区二区三区www污污污网站 | 性色视频在线观看 | 欧美在线a| 久久大综合| 丁香婷婷久久 | 狠狠干欧美 | 久久亚洲中文字幕无码 |