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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Luogu P1262 间谍网络 【强连通分量/缩点】By cellur925

發布時間:2025/5/22 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Luogu P1262 间谍网络 【强连通分量/缩点】By cellur925 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目傳送門

真是一道好題呀~~~~qwq

知道這題是tarjan,但是想了很久怎么用上強連通分量。因為樣例們...它顯然并不是一個強聯通分量!

(被樣例迷惑的最好例子)

然后...就沒有然后了...感覺自己被欺騙了。腦補了一些別的做法,向題解低頭

?


?

$Sol$

這個時候我們其實需要一些冷靜分析。分情況討論。

  • 判斷無解性。什么時候無解?當存在一個間諜既不能被收買也沒有被其他間諜掌握自己的資料,則無解。我們在主函數進行tarjan操作時,是從能被收買的間諜開始找環的。那么最后遞歸結束,當存在間諜沒被訪問($!dfn[i]$),那么問題無解。
  • 那么有解的情況呢?這時條件等價于所有的間諜都能直接或間接地被收買或被掌握。這時分兩種情況:正如我思考時,分有環和無環兩種情況。沒還,資金就需要給那個沒有入度的間諜;有環,我們就把資金給那個在環里資金最小的間諜(因為在一個強聯通分量中,所以一個點可達另一個節點,這個環就解決了,我們肯定想要給資金需要少的。這部分處理可在tarjan中順便求出)。有環的情況我們通常對它進行縮點,成為一個有向無環圖,也就變成了無環的情況。
  • 小結。縮點->DAG這是比較套路的東西了,大多數時候我們其實不用新建一個圖,而都是在統計入度(這種場合較多)。
  • 結論。還是我太弱了qwq。

?

$Code$

1 #include<cstdio> 2 #include<algorithm> 3 #include<stack> 4 #include<cstring> 5 #define maxn 4000 6 7 using namespace std; 8 9 int n,p,tot,r,dfs_clock,scc_cnt,ans; 10 int head[maxn],val[maxn],rdu[maxn],dfn[maxn],low[maxn],scc[maxn],price[maxn]; 11 bool buy[maxn]; 12 struct node{ 13 int to,next; 14 }edge[maxn*2]; 15 stack<int>s; 16 17 void add(int x,int y) 18 { 19 edge[++tot].to=y; 20 edge[tot].next=head[x]; 21 head[x]=tot; 22 } 23 24 void tarjan(int u) 25 { 26 dfn[u]=low[u]=++dfs_clock; 27 s.push(u); 28 for(int i=head[u];i;i=edge[i].next) 29 { 30 int v=edge[i].to; 31 if(!dfn[v]) 32 { 33 tarjan(v); 34 low[u]=min(low[u],low[v]); 35 } 36 else if(!scc[v]) low[u]=min(low[u],dfn[v]); 37 } 38 if(dfn[u]==low[u]) 39 { 40 scc_cnt++; 41 while(1) 42 { 43 int x=s.top();s.pop(); 44 scc[x]=scc_cnt; 45 val[scc_cnt]=min(val[scc_cnt],price[x]); 46 if(x==u) break; 47 } 48 } 49 } 50 51 int main() 52 { 53 scanf("%d%d",&n,&p); 54 memset(price,127,sizeof(price)); 55 memset(val,127,sizeof(val)); 56 for(int i=1;i<=p;i++) 57 { 58 int x=0; 59 scanf("%d",&x); 60 buy[x]=1; 61 scanf("%d",&price[x]); 62 } 63 scanf("%d",&r); 64 for(int i=1;i<=r;i++) 65 { 66 int x=0,y=0; 67 scanf("%d%d",&x,&y); 68 add(x,y); 69 } 70 for(int i=1;i<=n;i++) 71 if(!dfn[i]&&buy[i]) tarjan(i); 72 for(int i=1;i<=n;i++) 73 if(!dfn[i]){ans=i;break;} 74 if(ans) {printf("NO\n%d",ans);return 0;} 75 printf("YES\n"); 76 for(int x=1;x<=n;x++) 77 for(int i=head[x];i;i=edge[i].next) 78 { 79 int y=edge[i].to; 80 if(scc[x]==scc[y]) continue; 81 rdu[scc[y]]++; 82 } 83 for(int i=1;i<=scc_cnt;i++) 84 if(rdu[i]==0) ans+=val[i]; 85 printf("%d",ans); 86 return 0; 87 } View Code

$Warning$

那個最后縮點的時候這個地方比較容易寫錯。最后是在$scc_cnt$上進行操作的。

for(int x=1;x<=n;x++)for(int i=head[x];i;i=edge[i].next){int y=edge[i].to;if(scc[x]==scc[y]) continue;rdu[scc[y]]++;}for(int i=1;i<=scc_cnt;i++)if(rdu[i]==0) ans+=val[i];

?

轉載于:https://www.cnblogs.com/nopartyfoucaodong/p/9733577.html

總結

以上是生活随笔為你收集整理的Luogu P1262 间谍网络 【强连通分量/缩点】By cellur925的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美午夜精品久久久久久孕妇 | 亚洲热av| 特级做a爰片毛片免费69 | 久久久国产成人一区二区三区 | 中文字幕一区二区三区不卡 | 黄色特级网站 | 天天干天天干天天干天天 | 成人国产精品免费观看 | 日韩一区二区三区不卡 | 欧美成人免费大片 | 午夜中文字幕 | 性欧美ⅹxxxx极品护士 | 国产偷人妻精品一区二区在线 | 大胸美女被爆操 | 精品一区二区三区视频在线观看 | 欧美在线三区 | 亚洲国产大片 | 中文字幕黑丝 | 人人曰| 91一二区 | 一级片日韩 | 国产五区 | 99精品福利 | 国产精品xxxxxx | 黄色片免费网站 | 国产性猛交╳xxx乱大交一区 | 欧美日韩一区不卡 | 在线欧美成人 | 亚洲最大福利 | 国产农村妇女毛片精品 | 亚洲综合欧美 | 美国一级黄色大片 | a级无遮挡超级高清-在线观看 | 色婷婷av一区二区三区gif | 麻豆911| 午夜电影一区 | a级无遮挡超级高清-在线观看 | 亚洲尤物在线 | 最新av免费观看 | 欧美黄色a| 亚洲欧美一区在线 | 天天看夜夜看 | 国产精品熟妇人妻g奶一区 a少妇 | 国产乡下妇女三片 | 天天插天天干天天操 | 国产对白在线 | 免费观看理伦片在线播放视频软件 | 影音先锋中文字幕人妻 | 激情内射亚洲一区二区三区爱妻 | 亚洲伊人色 | 欧美一区二区三区成人精品 | chinese xxxx videos andvr | 国产在线看黄 | 日韩精品一区二区亚洲av观看 | 国产成人在线播放视频 | chinese精品自拍hd| japanese在线观看 | 日产精品久久久 | 日本三级中国三级99人妇网站 | 熟女少妇一区二区 | 九色porny视频 | 亚洲伦理自拍 | 国产一级免费在线观看 | 麻豆网站在线 | 亚洲理论中文字幕 | 激情xxx| 韩国中文字幕 | 领导揉我胸亲奶揉下面 | 久久国产影视 | 一区二区亚洲精品 | 美女福利视频在线观看 | 50一60岁老妇女毛片 | 国产婷婷色综合av蜜臀av | 久久久久亚洲av无码麻豆 | 免费激情av| 色婷婷777| 一区二区三区视频免费观看 | 岛国片在线免费观看 | 一级片视频在线观看 | 国产高清不卡视频 | 欧美 日韩 国产 成人 在线观看 | 少妇又紧又色 | 精品一区二区在线视频 | 国产精品久久久久三级无码 | 高清国产在线 | 国产一区午夜 | 国产69精品一区二区 | 美国一级特黄 | 三级大片在线观看 | 曰本不卡视频 | 91视频美女| 又爽又黄又无遮挡 | 色综合久久久久 | 亚洲综合三区 | 黄色录象片 | 国产色| 久久久香蕉视频 | 国产成人综合欧美精品久久 | 日本不卡一区二区在线观看 |