HDU 3047 Zjnu Stadium(带权并查集)
2017-11-23 16:54
369 查看
http://acm.hdu.edu.cn/showproblem.php?pid=3047
题意:
给出n个座位,有m次询问,每次a,b,d表示b要在a右边d个位置处,问有几个询问是错误的。
思路:
基础带权并查集。
题意:
给出n个座位,有m次询问,每次a,b,d表示b要在a右边d个位置处,问有几个询问是错误的。
思路:
基础带权并查集。
#include<iostream> #include<cstdio> using namespace std; const int maxn = 50000+5; int n,m; int p[maxn],r[maxn]; int finds(int x) { if(p[x]==x) return x; int tmp = p[x]; p[x] = finds(p[x]); r[x] = r[x] + r[tmp]; return p[x]; } void unions(int a, int b, int x, int y, int d) { p[x] = y; r[x] = d+r[b]-r[a]; } int main() { //freopen("in.txt","r",stdin); while(~scanf("%d%d",&n,&m)) { int ans = 0; for(int i=0;i<=n;i++) {p[i] = i;r[i] = 0;} while(m--) { int a,b,d; scanf("%d%d%d",&a,&b,&d); int x = finds(a); int y = finds(b); if(x==y) { if(r[a]-r[b]!=d) ans++; } else { unions(a,b,x,y,d); } } printf("%d\n",ans); } return 0; }
相关文章推荐
- hdu 3047 Zjnu Stadium【带权并查集】
- HDU 3047 Zjnu Stadium(带权并查集)
- hdu(3047)——Zjnu Stadium(高级并查集)
- HDU 3047 Zjnu Stadium(带权并查集)
- HDU 3047 Zjnu Stadium(带权并查集)
- HDU 3047 Zjnu Stadium 带权并查集
- HDU 3047 Zjnu Stadium 带权并查集
- hdu 3047 Zjnu Stadium(并查集)
- Zjnu Stadium(hdu-3047)(带权并查集)
- hdu 3047 Zjnu Stadium(加权并查集)2009 Multi-University Training Contest 14
- HDU 3047 Zjnu Stadium(带权并查集,路径压缩)
- hdu 3047 Zjnu Stadium (带权并查集)
- HDU 3047 Zjnu Stadium 带权并查集
- hdu 3047 Zjnu Stadium 带权并查集
- HDU 3047 Zjnu Stadium(带权并查集)
- HDU 3047 Zjnu Stadium 带权并查集
- HDU 3047 Zjnu Stadium 带权并查集
- hdu 3047 Zjnu Stadium【带权并查集】
- HDU 3047 Zjnu Stadium 带权并查集
- hdu 3047 Zjnu Stadium (带权并查集)