bzoj 1202: [HNOI2005]狡猾的商人
2016-03-03 23:02
274 查看
#include<cstdio> #include<iostream> #define M 1005 using namespace std; int fa[M],T,n,m,v[M],kg; int zhao(int a1) { if(fa[a1]==a1) return a1; int t=zhao(fa[a1]); v[a1]+=v[fa[a1]]; fa[a1]=t; return t; } int main() { scanf("%d",&T); for(;T;T--) { scanf("%d%d",&n,&m); for(int i=0;i<=n;i++) { fa[i]=i; v[i]=0; } kg=1; for(int i=1;i<=m;i++) { int a1,a2,a3,x,y; scanf("%d%d%d",&a1,&a2,&a3); x=zhao(a1-1); y=zhao(a2); if(x!=y) { fa[y]=x; v[y]=v[a1-1]+a3-v[a2]; } else if(v[a2]-v[a1-1]!=a3) kg=0; } if(kg) printf("true\n"); else printf("false\n"); } return 0; }
这好像是一个差分约束,用前缀和数组与读入的条件建边,发现所有的条件都是等于,所以可以用并查集维护,维护到祖先节点的距离。
相关文章推荐
- springMVC向页面传值
- bzoj2821 作诗(Poetize)
- 【HTTP】Fiddler(一) - Fiddler简介
- Java判断字符串是否为空的几种方法
- 字符串匹配算法总结
- C# 和SQL Server 类型转换
- 专业相框设计(ImageView的堆栈应用)
- Android开发环境下载与搭建
- bzoj2038【2009国家集训队】小Z的袜子(hose)
- poj2823 Sliding Window(单调队列)
- java传值与传引用的三种情况
- jquery的ajax同步和异步
- 2016.3.3 软件工程基础
- node.js下promise的两种常见用法
- android textview 莫名其妙 换行了?
- 2-4 Tutorials with python -> Routing
- 在vs2015中配置opencv的问题及解决办法
- bzoj 1192: [HNOI2006]鬼谷子的钱袋
- 资格考试_第五章_基金职业道德
- 2016/3/3日志总结 运用Jsp和Servlet实现网站的注册模块