LUOGU P1407 國家集訓隊 穩定婚姻

2022-05-12 10:22:53 字數 1085 閱讀 9743

傳送門

解題思路

讓所有夫婦之間連男到女的邊,所有情人之間連女到男的邊,然後用$tarjan$,如果對於一對夫妻在強連通分量裡,那麼就是不穩定的,因為他們可以繞一圈。

#include#include

#include

#include

#include

using

namespace

std;

const

int maxn = 8005

;const

int maxm = 40005

;int

n,m,cnt,head[maxn],tot,to[maxm],nxt[maxm];

intdfn[maxn],low[maxn],num,stk[maxn],top,col[maxn],col_num;

bool

vis[maxn];

string

s1,s2;

mapmp;

inline

void add(int bg,int

ed)void tarjan(int

x)

else

if(vis[u]) low[x]=min(dfn[u],low[x]);

}if(dfn[x]!=low[x]) return

; col[x]=++col_num;vis[x]=0

;

while(stk[top]!=x)top--;

}int

main()

scanf("%d

",&m);

for(int i=1;i<=m;i++)

cin>>s1>>s2,add(mp[s2],mp[s1]);

for(int i=1;i<=2*n;i++) if(!dfn[i]) tarjan(i);

for(int i=1;i<=n;i++)

puts(col[i

<<1]==col[(i<<1)-1]?"

unsafe

":"safe");

return0;

}

view code

Luogu P1407 國家集訓隊 穩定婚姻

link 不穩定的定義就是乙個男女相見的環。對於每一對夫妻關係我們女 rightarrow 男連邊。對於每一對情侶關係我們男 rightarrow 女連邊。這樣如果一對夫妻關係中的男女雙方在同乙個scc的話,這對夫妻關係就是不穩定的。include include include include i...

Luogu P1407 國家集訓隊 穩定婚姻

我國的離婚率連續7年上公升,今年的頭兩季,平均每天有近5000對夫婦離婚,大城市的離婚率上公升最快,有研究婚姻問題的專家認為,是與簡化離婚手續有關。25歲的姍姍和男友談戀愛半年就結婚,結婚不到兩個月就離婚,是典型的 閃婚閃離 例子,而離婚的導火線是兩個人爭玩電腦遊戲,丈夫一氣之下,把電腦炸爛。有社會...

luogu P1505 國家集訓隊 旅遊

題面傳送門 第一次一遍過國集紫題。好激動。一看就是樹剖,只不過操作有點多。把每條邊的權值放在兒子節點即可。對於取相反數放懶標記即可。其他是樹剖正常操作。實現 include include define max a,b a b a b define min a,b a b a b using nam...