博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【poj1182】 食物链
阅读量:4552 次
发布时间:2019-06-08

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

 (题目链接)

题意

  中文题

Solution

  带权并查集。

  

  fa记录父亲,r记录与父亲的关系。%3运用的很巧妙。

代码

// poj1182#include
#include
#include
#include
#include
#include
#define LL long long#define inf 2147483640#define Pi 3.1415926535898#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);using namespace std;int fa[1000010],r[1000010],n,k;int find(int x) { if (x!=fa[x]) { int fx=find(fa[x]); r[x]=(r[x]+r[fa[x]])%3; fa[x]=fx; } return fa[x];}bool Union(int x,int y,int type) { int fx,fy; fx=find(x);fy=find(y); if (fx==fy) { if ((r[y]-r[x]+3)%3!=type) return 1; else return 0; } fa[fy]=fx; r[fy]=(r[x]-r[y]+type+3)%3; return 0;}int main() { scanf("%d%d",&n,&k); for (int i=1;i<=n;i++) fa[i]=i; memset(r,0,sizeof(r)); int sum=0; while (k--) { int d,x,y; scanf("%d%d%d",&d,&x,&y); if (x>n || y>n || (x==y && d==2)) sum++; else if (Union(x,y,d-1)) sum++; } printf("%d",sum); return 0;}

  

转载于:https://www.cnblogs.com/MashiroSky/p/5914069.html

你可能感兴趣的文章
Android应用 程序框架设计方法
查看>>
基于Nginx环境下5种http转https的设置方法
查看>>
windows创建服务
查看>>
锋利的JQuery —— JQuery性能优化
查看>>
MIT许可证
查看>>
JQuery发送Ajax请求
查看>>
SQL 中的 case when
查看>>
【DeepLearning】GoogLeNet
查看>>
【手撸一个ORM】第六步、对象表达式解析和Select表达式解析
查看>>
MsDepSvc 启动失败
查看>>
总结十四
查看>>
泛型约束
查看>>
AOP技术分析
查看>>
jdk keytools for spring-boot
查看>>
百度前端学习日记03——CSS选择器
查看>>
二维数组和二级指针
查看>>
HDOJ_就这么个烂题总是WA先放这把
查看>>
十大经典官场小说
查看>>
uva 101 POJ 1208 The Blocks Problem 木块问题 vector模拟
查看>>
Python 面向对象 特殊方法(魔法方法)
查看>>