【HDU - 3038】How Many Answers Are Wrong (带权并查集--权为区间和)

题干:()

TT and FF are ... friends. Uh... very very good friends -________-b 

FF is a bad boy, he is always wooing TT to play the following game with him. This is a very humdrum game. To begin with, TT should write down a sequence of integers-_-!!(bored). 


Then, FF can choose a continuous subsequence from it(for example the subsequence from the third to the fifth integer inclusively). After that, FF will ask TT what the sum of the subsequence he chose is. The next, TT will answer FF's question. Then, FF can redo this process. In the end, FF must work out the entire sequence of integers. 

Boring~~Boring~~a very very boring game!!! TT doesn't want to play with FF at all. To punish FF, she often tells FF the wrong answers on purpose. 

The bad boy is not a fool man. FF detects some answers are incompatible. Of course, these contradictions make it difficult to calculate the sequence. 

However, TT is a nice and lovely girl. She doesn't have the heart to be hard on FF. To save time, she guarantees that the answers are all right if there is no logical mistakes indeed. 

What's more, if FF finds an answer to be wrong, he will ignore it when judging next answers. 

But there will be so many questions that poor FF can't make sure whether the current answer is right or wrong in a moment. So he decides to write a program to help him with this matter. The program will receive a series of questions from FF together with the answers FF has received from TT. The aim of this program is to find how many answers are wrong. Only by ignoring the wrong answers can FF work out the entire sequence of integers. Poor FF has no time to do this job. And now he is asking for your help~(Why asking trouble for himself~~Bad boy) 

Input

Line 1: Two integers, N and M (1 <= N <= 200000, 1 <= M <= 40000). Means TT wrote N integers and FF asked her M questions. 

Line 2..M+1: Line i+1 contains three integer: Ai, Bi and Si. Means TT answered FF that the sum from Ai to Bi is Si. It's guaranteed that 0 < Ai <= Bi <= N. 

You can assume that any sum of subsequence is fit in 32-bit integer. 

Output

A single line with a integer denotes how many answers are wrong.

Sample Input

10 5
1 10 100
7 10 28
1 3 32
4 6 41
6 6 1

Sample Output

1

题目大意:

       有n次询问,给出a到b区间的总和(左右均包含在内),问这n次给出的总和中有几次是和前面已近给出的是矛盾的。其实问矛盾的已经很典型了就是并查集可做。。。

解题报告:

   此题的权值为区间的和,所以合并区间(的端点)的同时将区间的和维护一下即可。对于A~B之间的和是S,其实可以理解成B比A-1大S,所以代码中要将区间左端点-1;

AC代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
const int MAX = 200000 + 5;
using namespace std;
int n,m;
int u,v;
int ans;
int f[MAX];
int w[MAX];
int sum;
int getf( int v) {if(v == f[v] ) return v;//一方面是为了递归函数的出口用的,另一方面加深一下理解,这里是指既然他已经是根节点了,那就不需要更新权值w和父节点f了,所以需要返回。并查集里面还是有很多道道的啊!!有很多更深层的理解和完美的思想在里面,内核思想和能解决的问题应该还远不止这些。 需要以后在做题中慢慢发掘。int tmp = getf(f[v]);w[v] = w[v] + w[f[v] ] ;f[v]=tmp;//或f[v] = getf(f[v])return f[v];
} bool merge(int u,int v,int sum) {int t1=getf(u);int t2=getf(v);if(t1 == t2) {return w[v ]-w[u ] == sum;}if(t1!=t2) {f[t2]=t1;//(a--)w[a]表示a到0的和,w[b]表示a+1到b的和; w[t2]=w[u]-w[v]+sum;//w[t2]表示t1,t2的距离; return true ;//即 如果当前他俩并不在一个集合当中,说明这一段区间并没有被记录过,所以一定推断不出错误所以一定会返回1,也就是说判断出错误当且仅当他俩已经在一个集合当中了。也就是上面那个if所表达的东西 }}
void init() {for(int i = 0; i<=MAX; i++) {//又犯这种错误!!!就初始化到n?!!?!?? w[i] = 0;f[i] = i;//}
}
int main()
{int m,n;while(~scanf("%d %d",&n,&m) ) {init();ans=0;while(m--) {scanf("%d %d %d",&u,&v,&sum);//只有输入过u和v的值才能做出判断,对这个区间内的值我们都不能做出判断,所以这题考虑并查集。 u--;//区间(0,b)分为(0,u-1)和(u,v); if(!merge(u,v,sum) ) ans++;}printf("%d\n",ans);}	return 0 ;
}

总结:

     1.通过做此题,加深了对并查集用处的理解,算是真正有了并查集的思想。

     2. 并查集判断的题型中bool型的merge函数很常用。

   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

drop sqlite 多个表_SQLite简介与安装

SQLite简介&#xff1a;SQLite是一款轻型的数据库&#xff0c;是遵守ACID的关系型数据库管理系统&#xff0c;它包含在一个相对小的C库中&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。就像其他数据库&#xff0c;SQLite 引擎不是一个独立的进…

【CF566#D】 Restructuring Company (并查集---合并区间操作)

题干&#xff1a; Even the most successful company can go through a crisis period when you have to make a hard decision — to restructure, discard and merge departments, fire employees and do other unpleasant stuff. Lets consider the following model of a c…

dg oracle 切换模式_谈谈dg切换涉及的概念:switchover和failover区别

概述今天有朋友问了一个问题&#xff1a;switchover和failover之间的区别&#xff0c;有点懵逼&#xff0c;居然把这忘记了&#xff0c;这里总结下两者之间的一些区别。DG架构DG切换时注意点&#xff1a;1、确认主库和从库间网络连接通畅&#xff1b;2、确认没有活动的会话连接…

【POJ - 2823】 Sliding Window(单调队列 用双端队列实现或模拟队列)

题干&#xff1a; An array of size n ≤ 10 6 is given to you. There is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves rightwards…

gis影像格式img转为ecw_医学影像图片格式

&#xff08;1&#xff09;Analyze格式&#xff1a;Analyze格式储存的每组数据组包含2个文件&#xff0c;一个为数据文件&#xff0c;其扩展名为.img&#xff0c;包含二进制的图像资料&#xff1b;另外一个为头文件&#xff0c;扩展名为.hdr&#xff0c;包含图像的元数据。&…

【CF#468 div2 D. 】Peculiar apple-tree(思维)

题干&#xff1a; In Arcadys garden there grows a peculiar apple-tree that fruits one time per year. Its peculiarity can be explained in following way: there are n inflorescences, numbered from 1 to n. Inflorescence number 1 is situated near base of tree a…

case when then else多个条件_sqlserver条件分支case when使用教程

在sqlserver的条件分支case when有两种写法&#xff1a;1)case 字段 when 值 then 返回值 when 值2 then 返回值2 end2)case when 条件1 then 返回值1 when 条件2 then 返回值2 end方法步骤&#xff1a;1.打开“SQL Server Management Studio”管理工具&#xff0c;创建一张测试…

【CF#-931A】 Friends Meeting(思维)

题干&#xff1a; Two friends are on the coordinate axis Ox in points with integer coordinates. One of them is in the point x1  a, another one is in the point x2  b. Each of the friends can move by one along the line in any direction unlimited number …

hashmap value占用空间大小_【Java集合框架002】原理层面:HashMap全解析

一、前言二、HashMap2.1 HashMap数据结构 HashMap线程不安全 哈希冲突2.1.1 HashMap数据结构学习的时候&#xff0c;先整体后细节&#xff0c;HashMap整体结构是 底层数组链表 &#xff0c;先记住&#xff0c;再开始看下面的HashMap相关知识点&#xff1a;底层数据结构&#…

【CF#931.B】World Cup (思维,模拟)

题干&#xff1a; The last stage of Football World Cup is played using the play-off system. There are n teams left in this stage, they are enumerated from 1 to n. Several rounds are held, in each round the remaining teams are sorted in the order of their …

升级bios_华硕B350PLUS升级BIOS更换AMD 3900X步骤

首先CPU更换看下面这张图&#xff0c;注意CPU上的小三角的位置。这块主板如果BIOS没有升级直接更换AMD 3900X的CPU会有点不亮显示器的问题&#xff0c;所以下面讲下华硕B350PLUS这块主板是如何更新到最新的BIOS驱动的(需要在原来老的CPU基础上先升级&#xff0c;升级完再更换39…

【HDU - 3410 】 Passing the Message(单调栈)

题干&#xff1a; What a sunny day! Let’s go picnic and have barbecue! Today, all kids in “Sun Flower” kindergarten are prepared to have an excursion. Before kicking off, teacher Liu tells them to stand in a row. Teacher Liu has an important message to …

实体类 接口_spring-boot-route(五)整合Swagger生成接口文档

目前&#xff0c;大多数公司都采用了前后端分离的开发模式&#xff0c;为了解决前后端人员的沟通问题&#xff0c;后端人员在开发接口的时候会选择使用swagger2来生成对应的接口文档&#xff0c;swagger2提供了强大的页面调试功能&#xff0c;这样可以有效解决前后端人员沟通难…

【qduoj - 312】寻找唯一的萌妹(卡时)

题干&#xff1a; 寻找唯一的萌妹 Description 又到了一年一度ACMer暑期留校集训的日子了&#xff0c;目前一共有2n1个小萌新报名参加暑期集训&#xff0c;其中2n个是帅哥&#xff0c;只有1个萌妹子&#xff0c;这是多么的悲催&#xff01;由于暑期训练强度大&#xff0c;坚持…

python 遍历字典嵌套_Python 字典嵌套循环遍历

这是从接口获取到的json数据{* "code":"10000",* "charge":false,* "remain":0,* "msg":"查询成功",* "result":{* "status":0,* "msg":"ok",* "result":{* &…

ACMer的AC福音!手动扩栈外挂!(防止栈溢出)

还在因为 怕 g 提交时间很慢&#xff0c;但是用C 交又怕栈溢出&#xff1f;&#xff1f;&#xff1f; 我们都知道&#xff0c;如果代码里有 递归函数 频繁调用&#xff0c; 用 C 提交代码&#xff0c; 很可能就会 出现 Runtime Error (ACCESS_VIOLATION) 但是用G…

【HDU - 1452】 Happy 2004(因子和,逆元,快速幂)

题干&#xff1a; Happy 2004 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1863 Accepted Submission(s): 1361 Problem Description Consider a positive integer X,and let S be the sum of all pos…

bootstrap-table 新增可编辑行_现代Web开发堆栈工具DevExtreme 新增Gantt组件,助力项目管理...

点击“了解更多”获取DevExpress DevExtreme v19.2正式版下载DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#xff0c;使您可以利用现代Web开发堆栈(包括React&#xff0c;Angular&#xff0c;ASP.NET Core&#xff0c;jQuery&#xff0c;Knockout等)构建交互式的Web应…

关抢占 自旋锁_互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景

前言生活中用到的锁&#xff0c;用途都比较简单粗暴&#xff0c;上锁基本是为了防止外人进来、电动车被偷等等。但生活中也不是没有 BUG 的&#xff0c;比如加锁的电动车在「广西 - 窃格瓦拉」面前&#xff0c;锁就是形同虚设&#xff0c;只要他愿意&#xff0c;他就可以轻轻松…

【HDU - 1852】 Beijing 2008()

题干&#xff1a; Beijing 2008 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/65535 K (Java/Others) Total Submission(s): 917 Accepted Submission(s): 394 Problem Description As we all know, the next Olympic Games will be held in Beiji…