HDU 3038 带权并查集
来源:互联网 发布:unity3d人物控制脚本 编辑:程序博客网 时间:2024/06/05 04:10
可以清晰看出val - dist[y] + dist[x] 就是yy到祖先的距离dist[yy]
#include <iostream>#include <cstdio>#include <string.h>using namespace std;const int AX = 2e5+666;const int MAXN = 4e4+666;int pre[AX];int dist[AX];int ans ;int n,m;void init(){for( int i = 1 ; i <= n ; i++ ){pre[i] = i;dist[i] = 0;}}int find(int x){if( x!= pre[x] ){int t = pre[x];pre[x] = find(pre[x]);dist[x] += dist[t]; //压缩路径时多出的更新操作} return pre[x];}void mix(int x,int y,int val){int xx = find(x);int yy = find(y);if( xx != yy ){pre[yy] = xx ;dist[yy] = val - dist[y] + dist[x]; //这一步的理解在开头给出}else{if( dist[yy] != val - dist[y] + dist[x] ) ans++;}}int main(){while(~scanf("%d%d",&n,&m)){ans = 0;init();int x,y,val;while( m-- ){scanf("%d%d%d",&x,&y,&val);mix(x-1,y,val);}printf("%d\n",ans);}return 0;}
阅读全文
0 0
- hdu 3038带权并查集
- hdu-3038 带权并查集
- hdu 3038 带权并查集
- hdu 3038 带权并查集
- HDU 3038 带权并查集
- hdu 2818 带权并查集
- hdu 3047 带权并查集
- hdu 3635 带权并查集
- HDU 3635 带权并查集
- HDU 3047 带权并查集
- HDU 3074 带权并查集
- HDU 3047 带权并查集
- hdu 3047 带权并查集
- hdu 3047 (带权并查集)@
- HDU 3047 带权并查集
- hdu 3047 带权并查集
- hdu 3038(带权并查集)
- HDU 3038 带权并查集,区间
- LeetCode——627. Swap Salary(数据库,sql)
- UVA156 Ananagrams(字符串处理)
- 2017杭电多校联赛第三场-RXD and dividing (hdu6060)最小生成树
- [Unity]调用GL.IssuePluginEvent()后dll中UnityRenderEvent()不执行的问题
- ocp Oracle.1z0-053 711--123
- HDU 3038 带权并查集
- HDU 6051原根 + 欧拉函数
- Python程序打包成exe可执行文件
- Git和SVN切换
- 黑卡地面分辨率
- window.opener的用法
- 利用maven对项目进行拆分、聚合
- 腾讯云centos7搭建javaweb服务器(亲测成功)
- Linux学习之基础篇_2017.8.2