1202: [HNOI2005]狡猾的商人

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 1554  Solved: 745
[Submit][Status]

Description

刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的。账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3...n-1,n), 。当 Ai大于0时表示这个月盈利Ai 元,当 Ai小于0时表示这个月亏损Ai 元。所谓一段时间内的总收入,就是这段时间内每个月的收入额的总和。 刁姹的任务是秘密进行的,为了调查商人的账本,她只好跑到商人那里打工。她趁商人不在时去偷看账本,可是她无法将账本偷出来,每次偷看账本时她都只能看某段时间内账本上记录的收入情况,并且她只能记住这段时间内的总收入。 现在,刁姹总共偷看了m次账本,当然也就记住了m段时间内的总收入,你的任务是根据记住的这些信息来判断账本是不是假的。

Input

第一行为一个正整数w,其中w < 100,表示有w组数据,即w个账本,需要你判断。每组数据的第一行为两个正整数n和m,其中n < 100,m < 1000,分别表示对应的账本记录了多少个月的收入情况以及偷看了多少次账本。接下来的m行表示刁姹偷看m次账本后记住的m条信息,每条信息占一行,有三个整数s,t和v,表示从第s个月到第t个月(包含第t个月)的总收入为v,这里假设s总是小于等于t。

Output

包含w行,每行是true或false,其中第i行为true当且仅当第i组数据,即第i个账本不是假的;第i行为false当且仅当第i组数据,即第i个账本是假的。

Sample Input

2
3 3
1 2 10
1 3 -5
3 3 -15
5 3
1 5 100
3 5 50
1 2 51

Sample Output

true
false

HINT

Source

题解:这个题乍一看我直接蒙了,完全没辙。直到我看了下题解,结果居然是个前缀和+并查集——细细想来,这道题出现冲突的前提必然是对于同一个区间(无论是直接给的还是间接推出来的),出现了两个不同的区间和。于是假如把每个月看成图的一个点,则意味着这张图里面两个点之间的所有路径均必须相等,则并查集这时候就会被用于找环啦——其实只要在并查集基本的getfat(找父亲点,详见百度百科——并查集)里面再加入一些维护操作即可,这样子前缀和以及重复边的相容性判断就手到擒来啦*^_^*么么哒(HansBug:多多卖萌有利于身心健康么么哒~ phile:。。。。。。)
 1 var
 2    i,j,k,l,m,n,x,y,z,vx,vi:longint;
 3    c,a:array[0..10000] of longint;
 4    flag:boolean;
 5 function getfat(k:longint):longint;
 6          var a1:longint;
 7          begin
 8               if k=c[k] then exit(k);
 9               a1:=getfat(c[k]);
10               inc(a[k],a[c[k]]);
11               c[k]:=a1;
12               exit(c[k]);
13          end;
14 procedure doit(x,y,z:longint);
15           var a1,a2,a3,a4,a5,a6:longint;
16           begin
17                a1:=getfat(x);a2:=getfat(y);
18                a3:=a[x];a4:=a[y];
19                if a1<>a2 then
20                   begin
21                        c[a1]:=a2;
22                        a[a1]:=a4-a3-z;
23                   end
24                else if (a4-a3)<>z then flag:=false;
25           end;
26 begin
27      readln(vx);
28      for vi:=1 to vx do
29          begin
30
31      fillchar(c,sizeof(c),0);
32      fillchar(a,sizeof(a),0);
33      readln(n,m);
34      for i:=0 to n do c[i]:=i;
35      flag:=true;
36      for i:=1 to m do
37          begin
38               readln(x,y,z);
39               doit(x-1,y,z);
40          end;
41      if flag then writeln('true') else writeln('false');
42
43          end;
44 end.
45                

转载于:https://www.cnblogs.com/HansBug/p/4174918.html

1202: [HNOI2005]狡猾的商人相关推荐

  1. bzoj 1202: [HNOI2005]狡猾的商人(带权并查集)

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

  2. BZOJ——1202: [HNOI2005]狡猾的商人

    http://www.lydsy.com/JudgeOnline/problem.php?id=1202 Time Limit: 10 Sec  Memory Limit: 162 MB Submit ...

  3. bzoj 1202 [HNOI2005]狡猾的商人

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

  4. BZOJ1202 [HNOI2005]狡猾的商人 【并查集】

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

  5. bzoj1202[HNOI2005]狡猾的商人

    bzoj1202[HNOI2005]狡猾的商人 题意: 账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai .所谓一段时间内的总收入,就是这段时间内每个月的收入额的总和.给出m段时间内的总 ...

  6. P2294 [HNOI2005]狡猾的商人

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

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

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

  8. [HNOI2005]狡猾的商人

    [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MB Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪 ...

  9. [HNOI2005]狡猾的商人(差分约束)

    P2294 [HNOI2005]狡猾的商人 (来自Luogu) 题目概述 数据规模: w,n,m <= 100 思路: 这个题的难点在于不好想到差分,转化:a-b=k是a-b>=k& ...

最新文章

  1. 机器学习数据预处理之离群值/异常值:箱图法(boxplot method)
  2. objective-C 中使用@Class和 #import区别
  3. java垃圾回收system_java应用性能调优之详解System的gc垃圾回收方法
  4. Aptana 安装jQuery库 智能提示
  5. 【实战演练】两种方法让 Docker 帮您快速构建应用程序
  6. 二分图 crf的军训
  7. python横坐标如何显示为月份_如何显示给定两个日期之间的所有月份?
  8. java递增不使用循环_[转]Java 8:不要再用循环了
  9. PowerSploit脚本
  10. hibernate异常:not-null property references a null or transient value
  11. 通过Xshell登录远程服务器实时查看log日志
  12. python turtle 椭圆_【python turtle如何画椭圆】
  13. scala基础之隐式转换
  14. Golang的并发模式
  15. python可以做什么工作-学了那么多年python到底可以找什么工作?
  16. 由href return false 来看阻止默认事件
  17. 微信小程序 canvas API
  18. oracle创建表练习
  19. 物联网案例(一):将设备数据转换为明智决策
  20. 啃完这本阿里手册,应届七面进阿里

热门文章

  1. 服务器中的地震仪,MOM2005+SP1部署指南(MOM2005系列之一)
  2. android开机自动运行程序
  3. H5的学习从0到1-H5的实体(14)
  4. 如何选择合适的分布式机器学习平台
  5. EMetaBlob类分析
  6. copy一下面试题目
  7. JQery遍历方法each
  8. 2010威购VgoShop单用户商场下一代企业电子商务系统
  9. sourcesafe管理phpproj文件的补充说明(downmoon)
  10. BUX让你轻松赚美元