日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品视频久久久 | 欧美情趣视频 | 国产一级色 | 黑人vs亚洲人在线播放 | 亚洲欧洲天堂 | 无套内谢的新婚少妇国语播放 | 自拍偷拍20p | 亚洲黄色在线 | 国外成人在线视频 | av在线电影网| 日韩中文在线一区 | 一区二区三区在线免费播放 | 黄瓜污视频 | 波多野结衣理论片 | 国产suv精品一区二区60 | 色一区二区三区 | 一级国产片 | 日韩精品视频免费看 | 中国大陆毛片 | 91插插插插插插插 | 69堂视频| 人妻一区二区在线 | 女同互舔视频 | 天堂在线观看av | 欧美理论片在线观看 | 久久66热这里只有精品 | 午夜福利三级理论电影 | 韩国日本在线观看 | 亚洲依依 | 欧美 日韩 国产 一区二区三区 | 国产91小视频 | 欧美人妖另类 | 蜜乳av网站| 在线看片一区二区 | 亚洲片国产一区一级在线观看 | 免费国产a | 风韵多水的老熟妇 | 午夜精品久久久久久久 | 色综合久久精品亚洲国产 | 日韩黄色一级 | 三上悠亚在线一区二区 | 99热麻豆| 亚洲人妻电影一区 | 成人在线观看黄色 | 伊人久久狼人 | 国产性生活一级片 | 天堂在线一区二区 | 粗大的内捧猛烈进出 | 亚洲在线观看一区二区 | 欧美视频免费在线观看 | 久久国产精品无码一区二区 | xxxxxx日本| 日韩色综合网 | 欧美日韩小说 | 亚洲一区免费视频 | 天天爽夜夜爽视频 | 日韩一区二区视频在线播放 | 精产国产伦理一二三区 | 夜夜夜爽| 野战少妇38p| 黄色激情av | 久精品在线观看 | 四虎永久网站 | 特黄特色大片免费 | 三级欧美视频 | 亚洲天堂h | 91成人破解版 | 88福利视频 | 国产欧美一区二区精品忘忧草 | 中文字幕一二三区 | 国产偷v国产偷v亚洲高清 | 在线免费观看av网址 | 久久久久久久久久久久久久av | 国产精品一区二区三区在线免费观看 | 69xxx国产 | 成人毛片在线播放 | 国产一区=区 | 韩国美女主播跳舞 | jizz日韩| 午夜激情成人 | 欧美成片vs欧美 | 日本少妇中文字幕 | 艳妇臀荡乳欲伦交换在线看 | 一区二区三区视频在线观看 | 日韩欧美视频免费观看 | 狠狠撸狠狠干 | 欧美少妇xx| 久久综合影视 | 涩涩屋视频在线观看 | 秋霞一级全黄大片 | 日本四虎影院 | 国产成人手机视频 | 色屁屁| 免费黄色av | 人妻妺妺窝人体色www聚色窝 | 99久久久无码国产精品性青椒 | 中国肥胖女人真人毛片 | 一级特黄特色的免费大片视频 | 一级在线 |