黑魔法师之门

并查集

黑魔法师之门

试题描述

  经过了16 个工作日的紧张忙碌,未来的人类终于收集到了足够的能源。然而在与Violet星球的战争中,由于Z 副官的愚蠢,地球的领袖applepi 被邪恶的黑魔法师Vani 囚禁在了Violet 星球。为了重启Nescafé这一宏伟的科技工程,人类派出了一支由XLk、Poet_shy 和lydrainbowcat 三人组成的精英队伍,穿越时空隧道,去往Violet 星球拯救领袖applepi。applepi 被囚禁的地点只有一扇门,当地人称它为“黑魔法师之门”。这扇门上画着一张无向无权图,而打开这扇门的密就是图中每个点的度数大于零且都是偶数的子图的个数对1000000009 取模的值。此处子图 (V, E) 定义为:点集V 和边集E 都是原图的任意子集,其中E 中的边的端点都在V 中。但是Vani 认为这样的密码过于简单,因此门上的图是动态的。起初图中只有N 个顶点而没有边。Vani 建造的门控系统共操作M 次,每次往图中添加一条边。你必须在每次操作后都填写正确的密码,才能够打开黑魔法师的牢狱,去拯救伟大的领袖applepi。

输入

第一行包含两个整数 N 和 M。接下来 M 行,每行两个整数 A 和 B,代表门控系统添加了一条无向边(A, B)。

输出

一共 M 行,表示每次操作后的密码。

输入示例

4 8
3 1
3 2
2 1
2 1
1 3
1 4
2 4
2 3

输出示例

0
0
1
3
7
7
15
31

其他说明

数据范围: N≤200000 ,M≤300000 。

 1 #include<iostream>
 2 #define p 1000000009
 3 using namespace std;
 4 int read()
 5 {
 6     int f=0;
 7     char x;x=getchar();
 8     while(x<‘0‘||x>‘9‘) x=getchar();
 9     while(x>=‘0‘&&x<=‘9‘)
10     {
11         f=f*10+x-‘0‘;
12         x=getchar();
13     }
14     return f;
15 }
16 int fa[200001];
17 int find(int x){return x==fa[x]?x:fa[x]=find(fa[x]);}
18 int main()
19 {
20     int n,m;
21     int ans=1;
22     n=read(),m=read();
23     for(int i=1;i<=n;i++) fa[i]=i;
24     for(int i=1;i<=m;i++)
25     {
26         int a,b;
27         a=read(),b=read();
28         int a1=find(a),b1=find(b);
29         if(a1==b1) ans*=2;
30         else fa[a1]=fa[b];
31         printf("%d\n",(ans-1)%p);
32         ans%=p;
33     }
34 }

时间: 2024-10-18 01:08:55

黑魔法师之门的相关文章

CODEVS1995 || TYVJ1863 黑魔法师之门

P1863 [Poetize I]黑魔法师之门 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 经过了16个工作日的紧张忙碌,未来的人类终于收集到了足够的能源.然而在与Violet星球的战争中,由于Z副官的愚蠢,地球的领袖applepi被邪恶的黑魔法师Vani囚禁在了Violet星球.为了重启Nescafé这一宏伟的科技工程,人类派出了一支由XLk.Poet_shy和lydrainbowcat三人组成的精英队伍,穿越时空隧道,去往Violet星球拯救领袖

刷过一题之黑魔法师之门

经过了16 个工作日的紧张忙碌,未来的人类终于收集到了足够的能源.然而在与Violet星球的战争中,由于Z 副官的愚蠢,地球的领袖applepi 被邪恶的黑魔法师Vani 囚禁在了Violet 星球.为了重启Nescafé这一宏伟的科技工程,人类派出了一支由XLk.Poet_shy 和lydrainbowcat 三人组成的精英队伍,穿越时空隧道,去往Violet 星球拯救领袖applepi.applepi 被囚禁的地点只有一扇门,当地人称它为“黑魔法师之门”.这扇门上画着一张无向无权图,而打开这

[Poetize I]黑魔法师之门

描述 Description applepi被囚禁的地点只有一扇门,当地 人称它为“黑魔法师之门”.这扇门上画着一张无向无权图,而打开这扇门的密码就是图中[每个点的度数大于零且都是偶数]的子图的个数对 1000000009取模的值.此处子图 (V, E) 定义为:点集V和边集E都是原图的任意子集,其中E中的边的端点都在V中. 但是Vani认为这样的密码过于简单,因此门上的图是动态的.起初图中只有N个顶点而没有边.Vani建造的门控系统共操作M次,每次往图中添加一条边.你必须在每次操作后都填写正确

入门OJ 4192: [Noip模拟题]黑魔法师之门

题目 Description applepi被囚禁的地点只有一扇门,当地人称它为"黑魔法师之门".这扇门上画着一张无向无权图,而打开这扇门的密码就是图中[每个点的度数大于零且都是偶数]的子图的个数对1000000009取模的值.此处子图 (V, E) 定义为:点集V和边集E都是原图的任意子集,其中E中的边的端点都在V中.但是Vani认为这样的密码过于简单,因此门上的图是动态的.起初图中只有N个顶点而没有边.Vani建造的门控系统共操作M次,每次往图中添加一条边.你必须在每次操作后都填写

黑魔法师之门 (magician)-并查集

题目 经过了 16 个工作日的紧张忙碌,未来的人类终于收集到了足够的能源.然而在与 Violet 星球的战争中,由于 Z 副官的愚蠢,地球的领袖 applepi 被邪恶的黑魔法师 Vani 囚禁在了 Violet 星球.为了重启 Nescafé这一宏伟的科技工程,人类派出了一支由 XLk.Poet_shy 和 lydrainbowcat 三人组成的精英队伍,穿越时空隧道,去往 Violet 星球拯救领袖 applepi. applepi 被囚禁的地点只有一扇门,当地人称它为“黑魔法师之门”.这扇

[codevs 1995]黑魔法师之门(并查集)

题目:http://codevs.cn/problem/1995/ 分析:脑补一下满足题目要求的子图肯定就是环……于是题目就变成了不断加边求环的个数.看起来有点麻烦……但是环的实质是几个小环组合起来的……所以我们只需要知道最基础的环的个数就行了,根据二项式定理那么就是2^(最基础的环的个数)-1.还是不好做啊!!!!!! 没关系……并查集来了…… 假设对于第i-1操作后,最终答案为ans,那么对于第i次操作,分为两种情况 ①加入这条边后,没有出现新环,那么说明对结果无影响,结果还是ans ②加入

2014082701黑魔法师之门(C++)

#include<iostream>#define p 1000000009using namespace std;int read() { int f=0; char x;x=getchar(); while(x<'0'||x>'9') x=getchar(); while(x>='0'&&x<='9') { f=f*10+x-'0'; x=getchar(); } return f;}int fa[200001];int find(int x){re

SEO黑页以及门页框架和JS跳转实现方法

在去年大家还在针对第三方博客狂轰乱炸,比如:webs.com.blogspot.com.weebly.com主要是因为本身博客平台的权重,再就是低廉的成本,主需要注册,没有域名和服务器的投入.排名也非常好上,实现这种门页的方法也是五花八门,比如:利用JS设置从搜索引擎来路直接跳转的,嵌入框架的,调用主站代码的. 但是今天google几次算法的调整之后,这些第三方平台的权重被削弱了,也很少有这样的平台会有很好的排名,以往有的一些中上词,几乎占满前三页.面对这种情况外贸SEOer们怎么办?不做门页了

大神刷题表

9月27日 后缀数组:[wikioi3160]最长公共子串 dp:NOIP2001统计单词个数 后缀自动机:[spoj1812]Longest Common Substring II [wikioi3160]最长公共子串 [spoj7258]Lexicographical Substring Search 扫描线+set:[poj2932]Coneology 扫描线+set+树上删边游戏:[FJOI2013]圆形游戏 结论:[bzoj3706][FJ2014集训]反色刷 最小环:[poj1734