P2294 [HNOI2005]狡猾的商人

解题思路:这里用带权并查集记录每个节点与自己祖先的距离。如果两个点没有相同的祖先,那么需要把这两个集合合并起来,用已经的点确定p点到q的距离,num[p] = num[t]-w-num[s];这个很重要。如果两个点有共同的祖先,那么判断一下两个点之间的距离是不是w就可以了。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=1e3+5;int f[N];
int num[N];int Find(int x){if(f[x] == x) return x;int t = Find(f[x]);num[x] += num[f[x]];f[x] = t;return f[x];
}
void solve(){int n,m,flag = 0;scanf("%d%d",&n,&m);for(int i = 0;i <= n;i++){f[i] = i;num[i] = 0;}while(m--){int s,t,w;scanf("%d%d%d",&s,&t,&w);s--;int p = Find(s),q = Find(t);if(p != q){f[p] = q;num[p] = num[t]-w-num[s];}else if(num[t]-num[s] != w){flag = 1;}}if(flag) {puts("false");}else {puts("true");}
}int main(){int t;scanf("%d",&t);while(t--){solve();}return 0;
}

P2294 [HNOI2005]狡猾的商人(带权并查集+前缀和)相关推荐

  1. P2294 [HNOI2005]狡猾的商人 带权并查集

    顺便回顾下带权并查集. 在普通并查集的基础上维护一个d数组,表示权值. 这题d[i]表示当前节点x与其祖宗节点get(x), 的sm差值,即sm[x]-sm[get(x)] =d[x] 初始d均为0. ...

  2. [HNOI2005]狡猾的商人 带权并查集

    给定m个区间和,问是否有矛盾 复习一下,带权并查集保存着这个元素与祖先的关系 在合并的过程中就像向量合并一样,可以画出x->fa[x],y->fa[y],x->y这样的图方便理解 这 ...

  3. 【无码专区9】序列统计(带权并查集 + 前缀和建边 + dp)

    因为只有std,没有自我实现,所以是无码专区 主要是为了训练思维能力 solution才是dls正解,但是因为只有潦草几句,所以大部分会有我自己基于正解上面的算法实现过程,可能选择的算法跟std中dl ...

  4. P2294 [HNOI2005]狡猾的商人

    P2294 [HNOI2005]狡猾的商人 题意: 你需要调查某个商人的账本,给你n个月内,m条账单信息,每条账单信息为x到y月的收入或者支出多少钱,问你根据账单信息判断这个账本是否合理 5 3 1 ...

  5. 洛谷 P2294 [HNOI2005]狡猾的商人

    洛谷 P2294 [HNOI2005]狡猾的商人 题目: 有图·.转链接 题解: 差分约束. 虽然题目中没有出现不等式,但还是属于差分约束的范畴之内的. 一开始我就按照它的要求u到v加权值w的边.但发 ...

  6. 狡猾的商人(带权并查集)

    刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3-n-1,n), .当 Ai大于0时表示这个月盈利A ...

  7. 洛谷P2294 [HNOI2005]狡猾的商人

    一道差分约束. 但是我横看竖看, 只从字缝里看到了"并查集"三个大字. 很明显嘛, 什么判断真假, 什么前缀和关系传递, 不是明摆着的带权并查集吗? #include <cs ...

  8. BZOJ 1202-狡猾的商人(带权并查集)

    1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3679  Solved: 1765 [Submit][S ...

  9. 2017乌鲁木齐区域赛I(带权并查集)

    #include<bits/stdc++.h> using namespace std; int f[200010];//代表元 long long rl[200010];//记rl[i] ...

最新文章

  1. linux卸载rpm包
  2. window 日志清除
  3. linux下指数函数,用GeoGebra画指数函数图像、查看函数变化轨迹
  4. RIP(Routing Information Protocol)精析04
  5. JVM 调优实战--常用命令参数及PS收集器的GC日志格式
  6. python乐观锁和悲观锁
  7. .Net Core + 微信赋能企业级智能客服系统--学习笔记
  8. java实现订单物品计算佣金,java三角形、NextDay、佣金问题代码
  9. Vue只是JavaScript其中的一个框架
  10. 音标与字母发音不同的字母总结
  11. 学习Leader选举算法
  12. html5中的web storage的用法
  13. lammps教程:晶体建模之Atomsk方法(1)
  14. AG螺纹的螺套安装后反复脱出,怎么办?
  15. 如何助力鸿蒙发展,实话实说:华为以一已之力,能不能推动鸿蒙系统的发展 - 区块网...
  16. 如何管理好团队?史玉柱自述
  17. html5新年网页做给父母的,2020给父母的新年祝福语
  18. 动画(重点)~~~~~
  19. 电子元器件行业采购管理平台数字化采购,助力企业降本增效
  20. 什么是分布式数据存储

热门文章

  1. 请求服务接口提示访问被拒绝
  2. 联想g510升级方案_联想G510更换固态、加装内存条、移机械硬盘至光驱位简记
  3. TPS5430降压电路,TPS5430芯片介绍
  4. 条码软件里如何调整二维码的角度
  5. 从qq空间看Tencent
  6. 有人用这个android控制我的手机,用这个软件,竟可以随便控制别人的手机
  7. 第十二届蓝桥杯大赛软件赛省赛C/C++ B组真题解析
  8. 知虾数据:店铺精细化运营提高商品曝光率,远超出竞品效果
  9. JS小数运算的正确姿势:保留两位小数技巧全解析
  10. 李笑来:“我们不要过度乐观”