并查集 poj食物链
来源:互联网 发布:使用线程池的java实例 编辑:程序博客网 时间:2024/06/05 23:02
#include <iostream>#include <stdio.h>using namespace std;int par[50000],kin[50000];void init(int n){int i;for(i=0;i<n;i++){par[i] = i;kin[i] = 0;}}void uniun(int xroot,int yroot,int x,int y,int o){par[yroot] = xroot;kin[yroot] = (kin[x]-kin[y]-o+3)%3;}int find(int x){if(par[x] == x)return x;int xroot;xroot = find(par[x]);kin[x] = (kin[par[x]]+kin[x]+3)%3;par[x] = xroot;return xroot;}int main(){int n,k;int x,y,o;int count = 0;scanf("%d%d",&n,&k);init(n);while(k--){scanf("%d%d%d",&o,&x,&y);x--;y--;if(x>=n||y>=n){count++;continue;}int xroot = find(x);int yroot = find(y);if(xroot == yroot){int u = (kin[x] - kin[y]+3)%3;if(u==0 && o == 1){continue;}if(u == 1 && o == 2){continue;}count++;}else{uniun(xroot,yroot,x,y,o-1);}}printf("%d\n",count);return 0;}
一般父类便为更节点更新节点时 kin = 0
0 0
- 并查集+poj食物链
- 并查集 poj食物链
- poj 1182 食物链(并查集)
- POJ 1182-食物链 并查集
- POJ 1182 食物链 并查集
- poj 1182 食物链 并查集
- POJ 1182 食物链 并查集
- poj 1182 --食物链(经典并查集)
- poj 1182 食物链(种类并查集)
- 并查集练习---poj 1182 食物链
- POJ 1182 食物链 [并查集]
- poj 1182 食物链(并查集)
- poj 1182 食物链 并查集
- POJ 1182 食物链 (并查集)
- poj 1182食物链(并查集)
- poj 1182 食物链 并查集
- poj 1182 - 食物链(并查集)
- POJ 1182 食物链 种类并查集
- Eclipse快捷键
- XAMPP虚拟主机配置,多域名绑定.
- 【Linux学习】Linux文件系统6—文件目录权限设置
- 总结html中的一些标签的区别,希望有不全的大家指出
- 3-2. 用天平找小球(10)
- 并查集 poj食物链
- 不要学习代码,要学会思考
- uva 846(数学)
- Caffe在转化图片到levelDB中遇到问题Check failed: data.size() == data_size
- 手机浏览器判断,窗口宽度,获取当前页面的顶端到页面顶端的距离
- [转载]如何做一个出色的程序员
- 黑马程序员 学习日记(五)
- Myclipse初学使用教程
- 《effective c++》读书笔记【一】