博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[JZOJ3385] 黑魔法师之门
阅读量:5122 次
发布时间:2019-06-13

本文共 1615 字,大约阅读时间需要 5 分钟。

Description

  经过了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。

Input

  第一行包含两个整数N和M。

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

Output

  输出一共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   样例解释:     第三次添加之后,存在一个满足条件的子图 {1, 2, 3}(其中1, 2, 3是数据中边的标号)。     第四次添加之后,存在三个子图 {1, 2, 3},{1, 2, 4},{3, 4}。   子图不一定连通。举另外一个例子,例如点(1、2、3),(4、5、6)分别组成一个三元环,则图中有三个所求子图。

Data Constraint

  对于30% 的数据,N, M≤10。

  对于100% 的数据,N≤200000,M≤300000。

Summary

  并查集判断两个点是否联通,添加一条边,如果两个端点之前已经联通,那么之前的形成的环就能从新联通的边再形成新的环,同时也让原本仅联通而不是环的两个端点形成环,即Ans=Ans*2+1,如果端点没有联通,就用并查集连接。

1 #include
2 int a[300000],n,m; 3 long long ans; 4 int find(int x) 5 { 6 if (a[x]==x) return x; 7 a[x]=find(a[x]); 8 return a[x]; 9 }10 int main()11 {12 scanf("%d%d",&n,&m);13 for (int i=1;i<=n;i++)14 a[i]=i;15 for (int i=1;i<=m;i++)16 {17 int x,y,xx,yy;18 scanf("%d%d",&x,&y);19 xx=find(x);20 yy=find(y);21 if (xx==yy) ans=(ans*2+1)%1000000009;22 else a[xx]=yy;23 printf("%d\n",ans);24 }25 }
View Code

 

转载于:https://www.cnblogs.com/Tokisaki-Kurumi/p/9316132.html

你可能感兴趣的文章
【题解】青蛙的约会
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
【转】 FPGA设计的四种常用思想与技巧
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
图论例题1——NOIP2015信息传递
查看>>
uCOS-II中的任务切换-图解多种任务调度时机与问题
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>