[HNOI2005][BZOJ1202] 狡猾的商人
1202: [HNOI2005]狡猾的商人
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 1863 Solved: 899
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
3 3
1 2 10
1 3 -5
3 3 -15
5 3
1 5 100
3 5 50
1 2 51
Sample Output
false
HINT
Source
想法好像比较奇怪……打死我也没想到这是个并查集啊。
并查集维护两个数组,f[i]表示i所在的并查集,v[i]表示f[i]->i月的收入,每次读入s,t,令p=f[s],q=f[t],若p==q,说明s,t属于同一个并查集,找f[s],f[t]的过程中维护处v[s],v[t],flag=v[t+1]-v[s]==w?1:0。若p!=q,则将f[q]赋值为p,(令每个并查集的左端点作为父亲结点,维护v[q])。
另:由于维护的是前缀和,所以读入是可将t+1,判断v[t+1]-v[s]的值。
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #include<cmath> using namespace std; int f[110],v[110]; int n,m,s,t,w,ww; bool flag; int find(int x) {if (f[x]==x) return x;int pp=f[x];f[x]=find(f[x]);v[x]+=v[pp];return f[x]; } int main() {scanf("%d",&w);while (w--){memset(v,0,sizeof(v));flag=0;scanf("%d%d",&n,&m);for (int i=1;i<=n+1;i++) f[i]=i;for (int i=1;i<=m;i++){scanf("%d%d%d",&s,&t,&ww);t++;int p=find(s),q=find(t);if (p==q){if (v[t]-v[s]!=ww) {flag=1;break;}}else{f[q]=p;v[q]=v[s]+ww-v[t];}}if (flag) printf("false\n"); else printf("true\n");}return 0; }
转载于:https://www.cnblogs.com/ws-fqk/p/4658769.html
[HNOI2005][BZOJ1202] 狡猾的商人相关推荐
- bzoj1202 狡猾的商人[并查集]
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2932 Solved: 1382 [Submit][Sta ...
- 【BZOJ1202】【HNOI2005】狡猾的商人
Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3-n-1,n), .当 Ai ...
- BZOJ1202 狡猾的商人 (Floyd)
题意分析 看了一眼题意,发现FLOYD可以做,其实就是判断是否满足边相加的关系成立. 需要注意的是,有可能有这样的数据, 3 2 1 2 10 3 3 -15 这个也是true的,也就是说,当边不满足 ...
- bzoj1202[HNOI2005]狡猾的商人
bzoj1202[HNOI2005]狡猾的商人 题意: 账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai .所谓一段时间内的总收入,就是这段时间内每个月的收入额的总和.给出m段时间内的总 ...
- BZOJ1202 [HNOI2005]狡猾的商人 【并查集】
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4180 Solved: 2015 [Submit][S ...
- 1202: [HNOI2005]狡猾的商人
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1554 Solved: 745 [Submit][St ...
- P2294 [HNOI2005]狡猾的商人
P2294 [HNOI2005]狡猾的商人 题意: 你需要调查某个商人的账本,给你n个月内,m条账单信息,每条账单信息为x到y月的收入或者支出多少钱,问你根据账单信息判断这个账本是否合理 5 3 1 ...
- bzoj 1202: [HNOI2005]狡猾的商人(带权并查集)
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3616 Solved: 1740 [Submit][S ...
- 洛谷 P2294 [HNOI2005]狡猾的商人
洛谷 P2294 [HNOI2005]狡猾的商人 题目: 有图·.转链接 题解: 差分约束. 虽然题目中没有出现不等式,但还是属于差分约束的范畴之内的. 一开始我就按照它的要求u到v加权值w的边.但发 ...
- [HNOI2005]狡猾的商人
[HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MB Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪 ...
最新文章
- matlab中的cellstr的用法,matlab中的cell array, cellstr()和char()的用法
- 制作r710 linux系统盘,记一次云主机系统盘扩容及制作私有镜像的操作步骤
- iOS - 解决设置导航栏按钮图片变色的问题
- 直观理解神经网络和梯度下降
- ZKWeb网页框架1.3正式发布
- hdu1113 Word Amalgamation(详解--map和string的运用)
- CUDA 学习(十四)、纹理内存
- xv6 Traps, interrupts, and drivers
- 关于nmap和traceroute在虚拟机里使用的问题
- android 5.0一键刷机教程,HTC D820t (Desire 820 移动4G Android 5.0)一键刷机教程,轻松刷机...
- 通信码元速率和带宽理解
- HTTP 请求的方式
- Multisim14创建LM386教程(含所需文件)
- 剑三游戏计算机配置,剑网3重制版电脑配置需求 关于选电脑二三事
- 傅立叶变换在图像处理中的作用
- list的stream流常用用法
- Jsonp跨域漏洞浅析
- phpstorm无法打开设置的问题
- vfifo控制mig_基于MIG IP核的DDR3控制器(一)
- 7nm工艺中的后端设计挑战