Luogu P1407 國家集訓隊 穩定婚姻

2022-04-30 19:06:11 字數 2115 閱讀 2929

我國的離婚率連續7年上公升,今年的頭兩季,平均每天有近5000對夫婦離婚,大城市的離婚率上公升最快,有研究婚姻問題的專家認為,是與簡化離婚手續有關。

25歲的姍姍和男友談戀愛半年就結婚,結婚不到兩個月就離婚,是典型的「閃婚閃離」例子,而離婚的導火線是兩個人爭玩電腦遊戲,丈夫一氣之下,把電腦炸爛。

有社會工作者就表示,80後求助個案越來越多,有些是與父母過多干預有關。而根據民政部的統計,中國離婚五大城市首位是北京,其次是上海、深圳,廣州和廈門,那麼到底是什麼原因導致我國成為離婚大國呢?有專家分析說,中國經濟急速發展,加上女性越來越來越獨立,另外,近年來簡化離婚手續是其中一大原因。

現代生活給人們施加的壓力越來越大,離婚率的不斷公升高已成為現代社會的一大問題。而其中有許許多多的個案是由婚姻中的「不安定因素」引起的。妻子與丈夫吵架後,心如絞痛,於是尋求前男友的安慰,進而夫妻矛盾激化,最終以離婚收場,類似上述的案例數不勝數。

我們已知n對夫妻的婚姻狀況,稱第i對夫妻的男方為bi,女方為gi。若某男bi與某女gj曾經交往過(無論是大學,高中,亦或是幼兒園階段,i≠j),則當某方與其配偶(即bi與gi或bj與gj)感情出現問題時,他們有私奔的可能性。不妨設bi和其配偶gi感情不和,於是bi和gj舊情復燃,進而bj因被戴綠帽而感到不爽,聯絡上了他的初戀情人gk……一串串的離婚事件像多公尺諾骨牌一般接踵而至。若在bi和gi離婚的前提下,這2n個人最終依然能夠結合成n對情侶,那麼我們稱婚姻i為不安全的,否則婚姻i就是安全的。

給定所需資訊,你的任務是判斷每對婚姻是否安全。

輸入格式:

第一行為乙個正整數n,表示夫妻的對數;

以下n行,每行包含兩個字串,表示這n對夫妻的姓名(先女後男),由乙個空格隔開;

第n+2行包含乙個正整數m,表示曾經相互喜歡過的情侶對數;

以下m行,每行包含兩個字串,表示這m對相互喜歡過的情侶姓名(先女後男),由乙個空格隔開。

輸出格式:

輸出檔案共包含n行,第i行為「safe」(如果婚姻i是安全的)或「unsafe」(如果婚姻i是不安全的)。

廢話巨多系列。

謎之re弄得我很生氣,於是就暴力開大陣列了

稍微畫個圖搞搞樣例會發現是個圖論題。從簡單情況考慮,假設現在有兩男兩女,能換cp當且僅當四個人兩兩都有感情(忽略基情姬情,也四人成環時婚姻不穩定。推廣到更大資料,會發現在環中的婚姻是不穩定的,否則一定是穩定的。

夫妻關係男向女連邊 ,情侶關係女向男連邊,跑一下tarjan找出強連通分量,在乙個分量中的就是不穩定的。

#include#include

#include

#include

using

namespace

std;

const

int maxn = 50000 + 5

;const

int maxm = 50000 + 5

;struct

edge l[maxn +maxm];

intn,m,num;

inttot,stamp;

inthead[maxn],cnt;

intboy[maxn],girl[maxn];

int low[maxn],dfn[maxn],col[maxn];//

col為所在強連通分量的標號

bool

in[maxn],vis[maxn];

mapmp;

stack

s;inline

void add(string x,string

y) void tarjan(int

x)

else

if(in

[l[i].to])

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

col[x] =tot;

in[x] = false

; s.pop();

}return;}

intmain()

scanf("%d

",&m);

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

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

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

return0;

}

Luogu P1407 國家集訓隊 穩定婚姻

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

LUOGU P1407 國家集訓隊 穩定婚姻

傳送門 解題思路 讓所有夫婦之間連男到女的邊,所有情人之間連女到男的邊,然後用 tarjan 如果對於一對夫妻在強連通分量裡,那麼就是不穩定的,因為他們可以繞一圈。include include include include include using namespace std const in...

luogu P1505 國家集訓隊 旅遊

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