分析:带权并查集,就是维护一堆关系

然后就是带权并查集的三步

1:首先确定权值数组,sum[i]代表父节点到子节点之间的1的个数(当然路径压缩后代表到根节点的个数)

1代表是奇数个,0代表偶数个

2:设计路径压缩算法 sum[x]=(sum[x]+sum[t])%2;

3:弄清合并根节点时的操作,小的在上;

注:这个题需要离散化

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <algorithm>
  4. using namespace std;
  5. const int N=5e3+;
  6. struct Node{
  7. int l,r,v;
  8. }p[N];
  9. int a[N<<],cnt;
  10. char s[];
  11. int fa[N<<],sum[N<<];
  12. int find(int x){
  13. if(x==fa[x])return x;
  14. int t=fa[x];
  15. fa[x]=find(fa[x]);
  16. sum[x]=(sum[x]+sum[t])%;
  17. return fa[x];
  18. }
  19. int main()
  20. {
  21. int n;
  22. while(~scanf("%d%d",&n,&n)){
  23. cnt=;
  24. for(int i=;i<=n;++i){
  25. scanf("%d%d%s",&p[i].l,&p[i].r,s);
  26. if(s[]=='e')p[i].v=;
  27. else p[i].v=;
  28. --p[i].l;
  29. a[++cnt]=p[i].l,a[++cnt]=p[i].r;
  30. }
  31. sort(a+,a++cnt);
  32. cnt=unique(a+,a++cnt)-a-;
  33. for(int i=;i<=cnt;++i)fa[i]=i,sum[i]=;
  34. int ans=;
  35. for(int i=;i<=n;++i){
  36. p[i].l=lower_bound(a+,a++cnt,p[i].l)-a;
  37. p[i].r=lower_bound(a+,a++cnt,p[i].r)-a;
  38. int u=find(p[i].l),v=find(p[i].r);
  39. if(u==v){
  40. if((-sum[p[i].r]-sum[p[i].l])%!=p[i].v)break;
  41. }
  42. else if(u<v){
  43. fa[v]=u;
  44. sum[v]=sum[p[i].r]-sum[p[i].l]-p[i].v;
  45. }
  46. else{
  47. fa[u]=v;
  48. sum[u]=sum[p[i].l]-sum[p[i].r]+p[i].v;
  49. }
  50. ++ans;
  51. }
  52. printf("%d\n",ans);
  53. }
  54. return ;
  55. }

POJ 1773 Parity game 带权并查集的更多相关文章

  1. POJ 1733 Parity game (带权并查集)

    题意:有序列A[1..N],其元素值为0或1.有M条信息,每条信息表示区间[L,R]中1的个数为偶数或奇数个,但是可能有错误的信息.求最多满足前多少条信息. 分析:区间统计的带权并查集,只是本题中路径 ...

  2. URAL - 1003:Parity (带权并查集&2-sat)

    Now and then you play the following game with your friend. Your friend writes down a sequence consis ...

  3. POJ 1182 食物链 【带权并查集】

    <题目链接> 题目大意: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我 ...

  4. POJ 1182 食物链 (带权并查集)

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 78551   Accepted: 23406 Description ...

  5. POJ 1182 食物链 【带权并查集/补集法】

    动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种.有人用两种说 ...

  6. poj 1182 食物链【带权并查集】

    设相等的边权为0,吃的边权为,被吃的边权为2,然后用带权并查集在%3的意义下做加法即可 关系为简单环的基本都可以用模环长的方式是用带权并查集 #include<iostream> #inc ...

  7. A Bug's Life POJ - 2492 (种类或带权并查集)

    这个题目的写法有很多,用二分图染色也可以写,思路很好想,这里我们用关于并查集的两种写法来做. 题目大意:输入x,y表示x和y交配,然后判断是否有同性恋. 1 带权并查集: 我们可以用边的权值来表示一种 ...

  8. 【poj1733】Parity game--边带权并查集

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15776   Accepted: 5964 Description Now ...

  9. POJ 3228 Gold Transportation(带权并查集,好题)

    参考链接:http://www.cnblogs.com/jiaohuang/archive/2010/11/13/1876418.html 题意:地图上某些点有金子,有些点有房子,还有一些带权路径,问 ...

随机推荐

  1. memcached全面剖析--3

    memcached的删除机制和发展方向 下面是<memcached全面剖析>的第三部分. 发表日:2008/7/16 作者:前坂徹(Toru Maesaka) 原文链接:http://gi ...

  2. Dreamweaver 添加 cakephp ctp后缀名

    Dreamweaver 默认是不支持ctp文件高亮的,即使用Dreamweaver打开ctp文件,也只能像记事本一样编辑 但是我们可以通过修改两个文件,来添加Dreamweaver对ctp文件的扩展支 ...

  3. 整理grep实战文本搜索过滤技巧

    一:grep的简介: 文本搜索工具,根据用户指定的文本模式对目标文件进行逐行搜索,显示能够被模式所匹配到的行.配合正则表达式的使用可以实现强大的文本处理.下面一一说明正则的例子. 二:文本处理工具分类 ...

  4. 寻找序列中最小的第N个元素(partition函数实现)

    Partition为分割算法,用于将一个序列a[n]分为三部分:a[n]中大于某一元素x的部分,等于x的部分和小于x的部分. Partition程序如下: long Partition (long a ...

  5. AngularJS的使用方法

    1.第一个ng demo <div ng-app="" ng-init="name='Kevin'"> <input ng-model=&qu ...

  6. Load a script file in sencha, supports both asynchronous and synchronous approaches

    //http://www.sencha.com/forum/showthread.php?188318-Ext.Loader.loadScriptFile-wrong-URL Ext.Loader.l ...

  7. 学无止境,学习AJAX(二)

    POST 请求 一个简单 POST 请求: xmlhttp.open("POST","demo_post.asp",true); xmlhttp.send(); ...

  8. vs2015Update2的一个坑

    最近更新了vs2015到update2,然后,蛋疼的事情就来了. 首先发现QT不能用了 boost编译也出问题了 查找了2天,发现问题所在,在于windows sdk更新 10.0.10586.0 了 ...

  9. 被FBI点名的中国黑客-Lion

    网名:Lion(狮子) 真实姓名:林勇 QQ:21509     简介:红客联盟创始人(该组织在2001年5月的黑客大战中一举成名,会员人数最多时达到6万,很有影响力),现在安氏因特网安全系统(中国) ...

  10. about mobile web

    http://blog.csdn.net/kavensu/article/details/8722268 http://cavenfeng.iteye.com/blog/1551516 http:// ...