JZOJ 3385. 【NOIP2013模擬】黑魔法師之門
目錄:
題目:
分析:
實際上每次操作後的答案就是2^(圖中”元”環的個數)。
元環的意思如右圖所示,(1-2-3-4-1)和(3-4-5-3) 是元環,
1-2-3-5-4-1 不是,因為它可以看做由上述的兩個環合成。
因為一個環裡每個點的度數都是大於零的偶數,我們可以這
樣來構造答案:每個環有選和不選兩種選擇,如果選擇了該
環,那麼環上所有邊的“選擇次數”+1。最後取所有“選擇次數”為奇數的邊構成一個邊集,
就是一個答案。可以證明這樣構造出來的解不重複且涵蓋了所有情況。因此答案就是2^(圖
中”元”環的個數)。實現方法非常簡單,只需要一個並查集即可。
具體實現方法:
並查集維護連通性,初始化ans=1。
加入一條邊(x,y)時,如果x 和y 在同一集合內,ans*=2。
每次詢問輸出ans-1。
時間複雜度
程式碼:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#define LL long long
using namespace std;
inline LL read() {
LL d=0,f=1;char s=getchar();
while(s<'0'||s>'9' ){if(s=='-')f=-1;s=getchar();}
while(s>='0'&&s<='9'){d=d*10+s-'0';s=getchar();}
return d*f;
}
int f[200001];
int find(int i)
{
return f[i]==i?i:f[i]=find(f[i]);
}
void hb(int x,int y)
{
f[find(x)]=find(y);
}
int main()
{
int n=read(),m=read();
int ans=1;
for(int i=1 ;i<=n;i++) f[i]=i;
int a,b;
for(int i=1;i<=m;i++)
{
a=read();b=read();
if(find(a)==find(b))
{
ans<<=1;
if(ans>1000000008) ans-=1000000009;
}
else hb(a,b);
printf("%d\n",ans-1);
}
return 0;
}
相關推薦
JZOJ 3385. 【NOIP2013模擬】黑魔法師之門
目錄: 題目: 分析: 程式碼: 題目: 分析: 實際上每次操作後的答案就是2^(圖中”元”環的個數)。 元環的意思如右圖所示,(1-2-3-4-1)和(3
【NOIP2013模擬】黑魔法師之門
題目描述 經過了16個工作日的緊張忙碌,未來的人類終於收集到了足夠的能源。然而在與Violet星球的戰爭中,由於Z副官的愚蠢,地球的領袖applepi被邪惡的黑魔法師Vani囚禁在了Violet星球。為了重啟Nescafé這一巨集偉的科技工程,人類派出了一支由XLk、Poet_shy
【codevs 1995】黑魔法師之門
嗯…… 通過樣例看出來,答案要麼不變,要麼*2+1 然後 發現如果新加的這條邊same(l[i].f,l[i].t),就*2+1 證明以後再說,機房要關門了…… #include <
JZOJ 3382. 【NOIP2013模擬】七夕祭
目錄: 題目: 分析: 程式碼: 題目: 分析: 首先,同一列中的交換隻會影響行,同一行中的交換隻會影響列。所以我們可以分開考慮行與列這兩個問題。我做題時有一個疑
JZOJ 3384. 【NOIP2013模擬】理科男
目錄: 題目: 分析: 程式碼: 題目: 分析: 面我們對 a 數列的性質做一些討論。 如果(B,K)=1(B,K)=1,對於任意的 i 都有 (a[i],B)
【並查集】黑魔法師之門
黑魔法師之門 (magician.pas/c/cpp) 題目描述 經過了16個工作日的緊張忙碌,未來的人類終於收集到了足夠的能源。然而在與Violet星球的戰爭中,由於Z副官的愚蠢,地球的領袖applepi被邪惡的黑魔法師Vani囚禁在了Violet星球。為了重啟Nesca
入門OJ 4192: [Noip模擬題]黑魔法師之門
argv else scan ons scanf nio public lse 代碼 題目 Description applepi被囚禁的地點只有一扇門,當地人稱它為“黑魔法師之門”。這扇門上畫著一張無向無權圖,而打開這扇門的密碼就是圖中【每個點的度數大於零且都是偶數】的子
【JZOJ B組】【NOIP2013模擬】終極武器
Description 經過一番周折,精英隊伍的隊員們終於來到了關押applepi的牢獄面前。心中神一般的領袖applepi就在眼前,隊員們都不由自主地跪爛膝蓋……不過令他們沮喪的是,牢獄的大鎖沒有鑰匙孔,黑魔法師Vani根本就沒有指望它再被開啟。幸好隊員
JZOJ 3510. 【NOIP2013模擬11.5B組】最短路徑
目錄: 題目: 程式碼: 題目: 由於每個點要麼在去的路上,要麼在回來的路上,所以用二進位制數表示N個點的狀態,對於特殊的四個點特判一下,然後從所有狀態中取最優的
jzoj 3467. 【NOIP2013模擬聯考7】最長上升子序列(lis) dfs+lis+手工棧
Input 輸入檔案lis.in的第一行有一個正整數n,表示操作個數。接下來n行每行有兩個整數op,x。如果op為0,則表示新增x這個數字;如果op為1,則表示回到第x次操作之後。 Output 對於每次操作,在輸出檔案lis.out中輸出一個
【JZOJ B組】【NOIP2013模擬】守衛者的挑戰
Description 打開了黑魔法師Vani的大門,隊員們在迷宮般的路上漫無目的地搜尋著關押applepi的監獄的所在地。突然,眼前一道亮光閃過。“我,Nizem,是黑魔法聖殿的守衛者。如果你能通過我的挑戰,那麼你可以帶走黑魔法聖殿的地圖……”瞬間,隊員們被
JZOJ 5773. 【NOIP2008模擬】簡單數學題
文章目錄題目:分析:程式碼: 題目: 傳送門 分析: 根據上面的式子,我們可以得出Nx+1\frac{N}{x}+1xN+1為偶數,因為111是奇數,而奇數+奇數才等於偶數,故Nx\frac{N
JZOJ 5775. 【NOIP2008模擬】農夫約的假期
文章目錄題目:分析:程式碼: 題目: 傳送門 分析: 首先,關於這道題,有個很巧妙的ACACAC方法:在AJAJAJ沒出資料前,機智的提交,即可用returnreturnreturn 000成功AC
JZOJ P5793. 【NOIP2008模擬】小S練跑步
5793. 【NOIP2008模擬】小S練跑步 (File IO): input:run.in output:run.out Time Limits: 2000 ms Memory Limits:
【NOIP2013模擬】七夕祭
題目描述 七夕節因牛郎織女的傳說而被扣上了「情人節」的帽子。於是TYVJ今年舉辦了一次線下七夕祭。Vani同學今年成功邀請到了cl同學陪他來共度七夕,於是他們決定去TYVJ七夕祭遊玩。 TYVJ七夕祭和11區的夏祭的形式很像。矩形的祭典會場由N排M列共計N×M個攤點組成。雖然攤點種
【NOIP2013模擬】太鼓達人
題目描述 七夕祭上,Vani牽著cl的手,在明亮的燈光和歡樂的氣氛中愉快地穿行。這時,在前面忽然出現了一臺太鼓達人機臺,而在機臺前坐著的是剛剛被精英隊伍成員XLk、Poet_shy和lydrainbowcat拯救出來的的applepi。看到兩人對太鼓達人產生了興趣,applepi果斷
JZOJ.3431【GDOI2014模擬】網格 解題報告
網格 題目描述 某城市的街道呈網格狀,左下角座標為AA(00,00),右上角座標為BB(nn,mm),其中nn>=mm。現在從AA(00,00)點出發,只能沿著街道向正右方或者正上方行走,且不能經過圖示中直線左上方的點,即任何途徑的點(xx,yy)
[JZOJ3395]【NOIP2013模擬】Freda的傳呼機
Description 為了 隨時 與 rainbow快速交流, Freda製造了 兩部傳呼機 。Freda和 rainbow所在的地方有N座房屋、M條雙向 光纜 。每條光纜連線兩座房屋, 傳呼機發出的訊號只能沿著光纜傳遞,並且 傳呼機的訊號 從光纜的其
黑魔法師之門 C組模擬賽
題目大意 每次加1條邊(共N次),每次詢問每個點的度數大於零且都是偶數的子圖的個數對1000000009取模的值. 解題思路: 並查集 每次讀入的兩個點如果父親相同就說明這兩個點的度數大於零且都是偶數的子圖。 我們又可以發現,每次(ans初值為1)
黑魔法師之門
esp getchar const max cto strong cstring space math https://www.zybuluo.com/ysner/note/1239406 題面 給出一個大小為\(n\)的無向圖,求圖中每個點的度數大於零且都是偶數的子圖的個