题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3577
好吧,我觉得这道题有必要说一下题目意思;毕竟我刚开始是没有看太懂,原谅我这个英语渣渣。。。ORZ.....
题意:输入一个t,表示有t组测试数据;
接下来一行,输入两个数,k,m,其中k表示这个辆车最多可以坐这么多人,m表示有m次询问能否上车;
每一次询问,输入两个数a,b,表示该乘客能否在a站台上车,b站台下车,乘车区间为(a,b--),先后次序;
即我每次询问,你就判断在a站台处将会有多少人还在车上,小于k则表示能够上车,更新数据,反之不能上车;
这到题要注意的是,虽然是考线段树的区间更新,但是得用到lazy思想,否则很显然的会TLE;
其实也很容易理解,每当我找到完全重合的区间,我就不往下找了,先保存子节点要更新的数据,当我下次要用的时候,用一层,更新一层,
这就好比如说,我现在找第一层,发现没有找到完全重合的区间,那么我就利用之前保存的数据更新一下我下一层的数据,然后我再找下一层,以此类推;
当然,链接:http://www.douban.com/note/273509745/这里有简单的介绍Lazy思想,不懂的可以去看看;
好了,直接看代码吧;
#include
#include
#include
#include