RQNOJ PID36 数石子
来源:互联网 发布:mac合盖播放 编辑:程序博客网 时间:2024/05/16 18:05
带权并查集
题目传送门
对于每个节点,记录一个dis,表示它到父亲节点的距离是多少。在找爸爸时更新即可。
注意这个网站不能加fread读优(血一般的教训)
代码:
#include<cstdio>#include<cstring>#include<algorithm>#define MAXN 5000using namespace std;int n,m,k;int fa[MAXN+5],dis[MAXN+5];int findfather(int x){ if (fa[x]==x) return x; int fx=findfather(fa[x]); dis[x]+=dis[fa[x]]; return fa[x]=fx;}int main(){ scanf("%d%d%d",&n,&m,&k); for (int i=1;i<=n;i++) fa[i]=i; memset(dis,0,sizeof(dis)); while (m--){ int x,y,z; scanf("%d%d%d",&x,&y,&z); x--; int fx=findfather(x),fy=findfather(y); if (fx!=fy){ fa[fy]=fx; dis[fy]=z-dis[y]+dis[x]; } } while (k--){ int x,y; scanf("%d%d",&x,&y); x--; int fx=findfather(x),fy=findfather(y); if (fx!=fy) printf("UNKNOWN\n"); else printf("%d\n",dis[y]-dis[x]); } return 0;}
阅读全文
1 0
- RQNOJ PID36 数石子
- 并查集PID36 / 数石子
- rqnoj-36-数石子
- RQNOJ-36 数石子
- RQNOJ 石子合并
- rqnoj-116-质数取石子
- rqnoj-116-质数取石子-dp
- 【图论】【RQNOJ】产生数
- 【模拟】【RQNOJ】回文数
- 【其他】【RQNOJ】吉祥数
- RQNOJ 154 吉祥数
- 【搜索】【RQNOJ】数的计算
- 【贪心】【RQNOJ】删数问题
- 【模拟】【RQNOJ】验证数独
- 【数论 / 数值】【RQNOJ】波浪数
- [Rqnoj-148][NOIP1999]回文数
- 【模拟】rqnoj P154 吉祥数
- 数石子题解
- css+div布局----典型布局基本框架
- spring+mysql记录
- 详细记录python的range()函数用法
- HDU2522(分数化小数,简单的模拟)
- Linux常用的指令
- RQNOJ PID36 数石子
- 常用的网页加载进度条之【制作进度条】
- 逻辑回归
- bzoj3632外太空旅行 随机化求最大团
- day3
- 深度探索C++对象模型——Data Member的布局(2)书上的错误
- 继承和多态
- 正则表达式--1
- 14_调整数组顺序使奇数位于偶数前面