BZOJ 1202: [HNOI2005]狡猾的商人
2017-05-18 16:32
375 查看
题目
1202: [HNOI2005]狡猾的商人题解
,,都五月份了我还这么傻逼。一共n个前缀,每次给出两个之间的关系,问是否有冲突。
这nm是做了千万遍的题啊。
带权并查集。我居然还把带权并查集写错了还不知道哪错了。233
代码
//QWsin #include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int maxn=100+10; int p[maxn],v[maxn]; int findset(int x) { if(p[x]==x) return x; int t=findset(p[x]);//带权并查集合并的顺序不要弄错了 v[x]+=v[p[x]]; return p[x]=t; } inline int getv(int l,int r) { return v[r]-v[l]; } inline void solve() { int n,m;cin>>n>>m;int ok=1; for(int i=0;i<=n;++i) p[i]=i,v[i]=0; for(int i=1,l,r,w;i<=m;++i) { scanf("%d%d%d",&l,&r,&w);--l; if(!ok) continue; int pa=findset(l); int pb=findset(r); if(pa==pb){ if(v[r]-v[l]!=w) {ok=0;puts("false");} } else{p[pb]=pa;v[pb]=w-v[r]+v[l];} } if(ok) puts("true"); } int main() { int T;cin>>T; while(T--) solve(); return 0; }
相关文章推荐
- BZOJ 1202: [HNOI2005]狡猾的商人 带权并查集
- 【bzoj1202】 HNOI2005狡猾的商人 并查集
- bzoj1202: [HNOI2005]狡猾的商人
- bzoj 1202 [HNOI2005]狡猾的商人|并查集
- 【HNOI2005】【BZOJ1202】狡猾的商人
- 【BZOJ】1202: [HNOI2005]狡猾的商人(并查集+前缀和)
- BZOJ 1202: [HNOI2005]狡猾的商人
- bzoj1202: [HNOI2005]狡猾的商人
- bzoj1202 [HNOI2005]狡猾的商人
- bzoj1202: [HNOI2005]狡猾的商人(并查集 差分约束)
- BZOJ 1202 [HNOI2005]狡猾的商人
- 【BZOJ 1202】 [HNOI2005]狡猾的商人(枚举区间也可行)
- [bzoj 1202--HNOI2005]狡猾的商人
- BZOJ 1202: [HNOI2005]狡猾的商人( 差分约束 )
- [BZOJ1202][HNOI2005]狡猾的商人(并查集+前缀和)
- BZOJ1202: [HNOI2005]狡猾的商人
- 【BZOJ】【1202】【HNOI2005】狡猾的商人
- BZOJ 1202: [HNOI2005]狡猾的商人【并查集】【路径迭代】
- bzoj1202: [HNOI2005]狡猾的商人(带权并查集)
- [BZOJ1202]HNOI2005 狡猾的商人|并查集|差分约束