題目描述 description
輸入描述 input description
第一行包含兩個整數n和m。
接下來m行,每行兩個整數a和b,代表門控系統新增了一條無向邊 (a,b)。
輸出描述 output description
輸出一共m行,表示每次操作後的密碼。
樣例輸入 sample input
4 8
3 1
3 2
2 1
2 1
1 3
1 4
2 4
2 3樣例輸出 sample output
0 0
1 3
7 7
15 31
資料範圍及提示 data size & hint
第三次新增之後,存在乙個滿足條件的子圖 (其中1,2,3是資料中邊的標號)。
第四次新增之後,存在三個子圖 ,,。
……對於30% 的資料,n,m≤10。
對於100% 的資料,n≤200000,m≤300000。
思路:首先大家不要被題麵中二的設定所迷惑,其實就是乙個很水的並查集。每次加邊判斷兩點是否在同乙個集合內,若不在就連一條邊,若在就讓ans*2+1。
題解:
#include
#include
using
namespace
std;
const
int mod=1000000009;
int f[400000+10];
int find(int w)
return f[w];
}int main()
int ans=0;
for(int i=1;i<=m;i++)
else
printf("%d\n",ans);
}return
0;}
黑魔法師之門
給出乙個大小為 n 的無向圖,求圖中每個點的度數大於零且都是偶數的子圖的個數。子圖不一定是聯通的!則設圖中最小環 不由其它環組成的環 的個數為 x 如果同一聯通塊中的點再次聯通,就構成了乙個新的最小環。因為這些環選與不選都可構成新子圖,於是 ans 2 x 1 去掉乙個環都不選的情況 include...
Poetize I 黑魔法師之門
描述 description 題解 題意很清楚,但是感覺很神。剛開始一直在想如何構造,發現太複雜 然後查題解發現只有要當前兩點在同一連通塊裡,ans 2,最後輸出ans 1 表示不理解,就沒寫。昨天翻到了lyd的題解 他引入了乙個叫 元環 的東西,然後證明答案就是 2 元環的個數 我表示對元環的概念...
並查集 黑魔法師之門
黑魔法師之門 magician.pas c cpp 題目描述 的個數對1000000009取模的值。此處子圖 v,e 定義為 點集v和邊集e都是原圖的任意子集,其中e中的邊的端點都在v中。輸入格式 第一行包含兩個整數n和m。接下來m行,每行兩個整數a和b,代表門控系統新增了一條無向邊 a,b 輸出格...