1995 黑魔法师之门

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 查看运行结果
 
 
题目描述 Description

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

输入描述 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}(其中1,2,3是数据中边的标号)。
  第四次添加之后,存在三个子图 {1,2,3},{1,2,4},{3,4}。
  ……

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

来源:Nescafe 17

 
 
思路:
  很bug的思路。。
  看了半天样例推出了一个自己都不太信的方法;
  给你很多很多点
  然后分成m条操作来判断
  如果两个点在同一个集合中
  那么ans<<1|1(ans初始为1)
  否则通过并查集来合并这两个点
  每次操作完输出一次ans
  然后,就ac了。。ac了。。
 
来,上代码:

  1. #include <cstdio>
  2.  
  3. #define maxn 200001
  4. #define maxm 300000
  5. #define mod 1000000009
  6.  
  7. using namespace std;
  8.  
  9. class Finding {
  10. private:
  11. int n,m,f[maxn],if_z;
  12.  
  13. long long int ans;
  14.  
  15. char Cget;
  16.  
  17. inline void read_int(int &now)
  18. {
  19. now=,if_z=,Cget=getchar();
  20. while(Cget>''||Cget<'')
  21. {
  22. if(Cget=='-') if_z=-;
  23. Cget=getchar();
  24. }
  25. while(Cget>=''&&Cget<='')
  26. {
  27. now=now*+Cget-'';
  28. Cget=getchar();
  29. }
  30. now*=if_z;
  31. }
  32.  
  33. public:
  34. Finding()
  35. {
  36. read_int(n),read_int(m);
  37. for(int i=;i<=n;i++) f[i]=i;
  38. int x,y;
  39. for(int i=;i<=m;i++)
  40. {
  41. read_int(x),read_int(y);
  42. x=Find(x),y=Find(y);
  43. if(x==y) ans=ans<<|;
  44. else f[x]=y;
  45. ans%=mod;
  46. printf("%lld\n",ans);
  47. }
  48. }
  49.  
  50. int Find(int x)
  51. {
  52. if(f[x]==x) return x;
  53. f[x]=Find(f[x]);
  54. return f[x];
  55. }
  56. };
  57. class Finding do_;
  58.  
  59. int main()
  60. {
  61. return ;
  62. }

AC日记——黑魔法师之门 codevs 1995的更多相关文章

  1. CODEVS1995 || TYVJ1863 黑魔法师之门

    P1863 [Poetize I]黑魔法师之门 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 经过了16个工作日的紧张忙碌,未来的人类终于收集到了足够的能源 ...

  2. tyvj1863 [Poetize I]黑魔法师之门

    背景 经过了16个工作日的紧张忙碌,未来的人类终于收集到了足够的能源.然而在与Violet星球的战争中,由于Z副官的愚蠢,地球的领袖applepi被邪恶的黑魔法师Vani囚禁在了Violet星球.为了 ...

  3. CNUOJ 535 黑魔法师之门

    先摆出题 难度级别:C: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 背景: 经过了16个工作日的紧张忙碌,未来的人类终于收集到了足够的能源 ...

  4. [Poetize I]黑魔法师之门

    描述 Description applepi被囚禁的地点只有一扇门,当地 人称它为“黑魔法师之门”.这扇门上画着一张无向无权图,而打开这扇门的密码就是图中[每个点的度数大于零且都是偶数]的子图的个数对 ...

  5. JZOJ 3385. 【NOIP2013模拟】黑魔法师之门

    3385. [NOIP2013模拟]黑魔法师之门 (Standard IO) Time Limits: 1000 ms  Memory Limits: 131072 KB  Detailed Limi ...

  6. TyvjP1863 [Poetize I]黑魔法师之门(2014-8-27)

    P1863 [Poetize I]黑魔法师之门 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 经过了16个工作日的紧张忙碌,未来的人类终于收集到了足够的能源 ...

  7. [JZOJ3385] [NOIP2013模拟] 黑魔法师之门 解题报告(并查集)

    Description 经过了16个工作日的紧张忙碌,未来的人类终于收集到了足够的能源.然而在与Violet星球的战争中,由于Z副官的愚蠢,地球的领袖applepi被邪恶的黑魔法师Vani囚禁在了Vi ...

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

    题目 经过了 16 个工作日的紧张忙碌,未来的人类终于收集到了足够的能源.然而在与 Violet 星球的战争中,由于 Z 副官的愚蠢,地球的领袖 applepi 被邪恶的黑魔法师 Vani 囚禁在了 ...

  9. 【NOIP2013模拟】黑魔法师之门

    题目描述 经过了16个工作日的紧张忙碌,未来的人类终于收集到了足够的能源.然而在与Violet星球的战争中,由于Z副官的愚蠢,地球的领袖applepi被邪恶的黑魔法师Vani囚禁在了Violet星球. ...

随机推荐

  1. Gym - 101128F Landscaping(网络流)

    题意 给你一个\(N×M\)的草地,有高地有低地. 收割机从低地走到高地或者从高地走到低地都要花费用\(A\),你可以花费用\(B\)把一块高地变成低地,或者把一块低地变成高地.收割机每行每列都是必须 ...

  2. 4819: [Sdoi2017]新生舞会(分数规划)

    4819: [Sdoi2017]新生舞会 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1031  Solved: 530[Submit][Statu ...

  3. SpringMvc路径参数和url的两种实现方式

    我们经常采用的SpringMvc路径参数经常的操作是在url后面采用?参数名=值1&参数名2=值2这种方式实现 RequestMapping的作用: 1)当作用在controller时,我们通 ...

  4. datagrid的修改和删除功能的实现

    1.修改 双击,进入一行的编辑状态的功能的实现 2.删除 3.扩展easyui的datagrid,添加动态增加或删除Editor的方法 (1)背景要求: 对于某一列,比如密码,动态增加时候,是可以编辑 ...

  5. MySQL安装教程&Navicat安装

    一.下载MySQL http://jingyan.baidu.com/article/e3c78d64412ae83c4c85f5fd.html 首先打开MySQL官网,找到Downloads标签,点 ...

  6. 5、CSS基础part-3

    1.CSS列表 ①类型 ul.disc {list-style-type: disc} ②位置 ul.inside {list-style-position: inside} ③列表图像 2.表格

  7. python2.X中文乱码

    在IDE下,加上# -- coding: UTF-8 -- 并且保证IDE也是utf-8编码. 在CMD下,这样执行会有乱码,为啥呢,因为cmd下是gbk编码的,你写的代码必须也是gbk编码的,你可以 ...

  8. 精通CSS高级Web标准解决方案(7、布局)

    7.1 让设计居中 7.1.1 使用自动空白边让设计居中 <body> <div id="wrapper"> </div> </body& ...

  9. Leetcode 518.零钱兑换II

    零钱兑换II 给定不同面额的硬币和一个总金额.写出函数来计算可以凑成总金额的硬币组合数.假设每一种面额的硬币有无限个. 注意: 你可以假设 0 <= amount (总金额) <= 500 ...

  10. 使用原app接口进行微信公众号开发

    1.跨域问题 原来的app项目已经上线,然而接下来就有意思了,突然上头说要把app的发件功能复制到微信公众号里.那么问题来了,微信公众号的页面是前端和交互式h5大哥写的. 那么就将页面丢微信里,请求我 ...