随笔分类 - 贪心
摘要:en跟前面那个种树的一样嘛 只是不是环,就在左右两边设INF的边界就好了。(mdzz(1<<31)爆int变成-2147483648了)
阅读全文
摘要:思路很妙啊。 我一开始就在想DP,但是时间必挂。 膜了题解才发现原来是贪心。首先如果没有限制左右不能选,那就很简单,那现在的做法就是给他一个反悔的机会 比如数列9 10 8 -1 那贪心一开始就选10,这时把数列变成:9+8-10 -1 = 7 -1 那么下一次选的就是7,相当于减的10抵消而选了9
阅读全文
摘要:今天状态真的是不一般的差。 LCT动态维护最大生成树没调出来,费用流又没写出来。 结果这道煞笔贪心都要重构一次代码才能A 然后做法其实很简单,逆向枚举每一个位,判断当前位经过一连串的运算后能否为1。当前位的值分0和1两种情况。
阅读全文
摘要:这题以前好像是做过的。 很容易发现就是treeDP了。 然后需要一点贪心的思想,对于当前以x为根的子树,删除任意的子节点,实际上答案都是+1,所以可以排序一下,然后先删那些值小的点。
阅读全文
摘要:一开始见到这题还以为是水题(捂脸OZYFYC不要D我)瞎jb写了个set结果GG。。。 然后做法是这样的:首先一看就要排序,n=200000就是压线O(nlogn)啊,然后把每个数字的起始位置和结束位置求出来,那mn[x]~mx[x]就是范围,那可以发现,假如x<y,mx[x]<mn[y],那x和y
阅读全文
摘要:嗯这道题又涨姿势了。第一次看见这样的离散化。。666 说说做法吧,第一眼就看出线段树的说,贪心没看出来。。就只能膜网上的题解了,我们先将长度给排序一下,然后看看从当前位置(L)开始,要到哪个点(R)就可以达到m个区间共同包含至少一个位置,这就是一种解,判断m个区间的方式就是利用线段树维护一个区间最大
阅读全文