洛谷P2294 [HNOI2005]狡猾的商人
一道差分约束.
但是我横看竖看, 只从字缝里看到了"并查集"三个大字.
很明显嘛, 什么判断真假, 什么前缀和关系传递, 不是明摆着的带权并查集吗?
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int MAXN = 1e2 + 10; const int MAXM = 1e3 + 10;int W, N, M;namespace ufs {int fa[MAXM], d[MAXM];void init(){memset(d, 0, sizeof(d));for(int i = 0; i <= N; i++) fa[i] = i;}int findfa(int x){if(fa[x] == x) return x;int tmp = findfa(fa[x]);d[x] += d[fa[x]];return fa[x] = tmp;}inline bool unite(int u, int v, int c){if(u > v) swap(u, v);int x = findfa(u), y = findfa(v);if(x == y) return c == (d[u] - d[v]);if(x < y) {fa[x] = y, d[x] = d[v] + c - d[u];return true;} else{fa[y] = x, d[y] = d[u] - c - d[v];return true;}} }int main() {//freopen("p2294.in", "r", stdin);cin>>W;while(W--){cin>>N>>M;bool flag = true; ufs::init();for(int i = 1, u, v, c; i <= M; i++){scanf("%d%d%d", &u, &v, &c);if(!flag) continue;if(!ufs::unite(u - 1, v, c)) flag = false;}if(flag) puts("true");else puts("false");}return 0; }
转载于:https://www.cnblogs.com/wsmrxc/p/9334649.html
洛谷P2294 [HNOI2005]狡猾的商人相关推荐
- 洛谷 P2294 [HNOI2005]狡猾的商人
洛谷 P2294 [HNOI2005]狡猾的商人 题目: 有图·.转链接 题解: 差分约束. 虽然题目中没有出现不等式,但还是属于差分约束的范畴之内的. 一开始我就按照它的要求u到v加权值w的边.但发 ...
- P2294 [HNOI2005]狡猾的商人
P2294 [HNOI2005]狡猾的商人 题意: 你需要调查某个商人的账本,给你n个月内,m条账单信息,每条账单信息为x到y月的收入或者支出多少钱,问你根据账单信息判断这个账本是否合理 5 3 1 ...
- P2294 [HNOI2005]狡猾的商人(带权并查集+前缀和)
P2294 [HNOI2005]狡猾的商人 解题思路:这里用带权并查集记录每个节点与自己祖先的距离.如果两个点没有相同的祖先,那么需要把这两个集合合并起来,用已经的点确定p点到q的距离,num[p] ...
- P2294 [HNOI2005]狡猾的商人 带权并查集
顺便回顾下带权并查集. 在普通并查集的基础上维护一个d数组,表示权值. 这题d[i]表示当前节点x与其祖宗节点get(x), 的sm差值,即sm[x]-sm[get(x)] =d[x] 初始d均为0. ...
- [HNOI2005]狡猾的商人(差分约束)
P2294 [HNOI2005]狡猾的商人 (来自Luogu) 题目概述 数据规模: w,n,m <= 100 思路: 这个题的难点在于不好想到差分,转化:a-b=k是a-b>=k& ...
- 差分约束 [HNOI2005]狡猾的商人(洛谷 P2294)
[HNOI2005]狡猾的商人 题目大意: n 个月,m 个约束条件,判断最终是否产生矛盾: 因为这里不是 xix_ixi <= yjy_jyj + ckc_kck,而是 sumtsum_ ...
- 1202: [HNOI2005]狡猾的商人
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1554 Solved: 745 [Submit][St ...
- BZOJ1202 [HNOI2005]狡猾的商人 【并查集】
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4180 Solved: 2015 [Submit][S ...
- bzoj1202[HNOI2005]狡猾的商人
bzoj1202[HNOI2005]狡猾的商人 题意: 账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai .所谓一段时间内的总收入,就是这段时间内每个月的收入额的总和.给出m段时间内的总 ...
最新文章
- mysql游标嵌入式_Oracle与MySQL内嵌游标的使用示例
- SAP S/4HANA Cloud 系统集成的一些场景介绍
- 运维提效 60%,视野数科 SAE + Jenkins 打造云原生 DevOps
- linux系统下UTF-8转GBK编码,使用汉字字库在LCD显示汉字
- H5页面调起手机打电话功能
- 变量的存在意义和底层逻辑(《Java与Python学习通法》)
- dell服务器系统备份软件,使用 AlienRespawn 备份 Alienware 电脑的系统
- 论文第一部分写作总结(introduction)
- MPI 之 点对点通信的一个实例
- vue移动端实现excel在线预览
- 力扣(88.53)补8.31
- 转载 :make报错:/usr/bin/ld: cannot find -lXXX
- 活码二维码(动态二维码)素材库管理教程
- Python报错处理libpng warning: iCCP: cHRM chunk does not match sRGB
- 时序图和流程图的区别
- 瑞吉外卖【后台管理系统篇】
- 树莓派笔记01—35美元的Linux超级计算机
- 论文解读:SpellBERT:A Lightweight Pretrained Model for Chinese Spelling Checking
- RobotFramework实现键盘组合按键
- freefilesync数据同步