摘要:
用splay离线弄好顺序。 然后树状数组(分治也行吧) 看错题Wa了。。。是当前所有最大值不是包含插入这个数字子序列的最大值。 阅读全文
摘要:
一开始的想法:top判一下环,然后直接D 然后其实整个环一起取是合法的 所以无脑缩点 然而森林转二叉树+treedp真的慢到爆炸,10s跑不出一个点 Rose:我从来都是直接多叉D (%%%%%% 然后就%了一发fyc,然后学会了。(或许某天我又会回来补) 垃圾森林转二叉 AC: 阅读全文
摘要:
哈哈set卡时过了。 set求前驱的方法:*--b.lower_bound(x) (想想写了splay的肉老师就很愉悦啊) 弄两个set,一个记录的是位置的值,一个是差值,MIN_SORT_GAP就很简单啊,插入的时候找前驱后继,然后mmin代表当前最小值就可以了。 对于MIN_GAP要记录当前位置 阅读全文
摘要:
离散化+并查集。 为了离散化而离线后,我发现可以先把=的连在一起,然后再判不等于。这样做很清晰简洁。 1A真开心。 阅读全文
摘要:
这题方程就是f(i)=f(i-1)^n+1 高精度谢谢。 阅读全文
摘要:
dfs序+差分+树状数组。这题很简单。 但是要注意dfs新编号的问题。 阅读全文
摘要:
这题老号用左偏树写过。 然后现在用了主席树,感觉理解加深了很多。 首先就是dfs序搞出每个节点管理的区间,然后暴力枚举每一个管理者,然后在区间里找最多能够支付多少人。 值得注意的是当前位置的值应该是排序后的数组的值而非原来当前位置的值,调了一中午。。 主席树: 左偏树: 阅读全文
摘要:
今天状态真的是不一般的差。 LCT动态维护最大生成树没调出来,费用流又没写出来。 结果这道煞笔贪心都要重构一次代码才能A 然后做法其实很简单,逆向枚举每一个位,判断当前位经过一连串的运算后能否为1。当前位的值分0和1两种情况。 阅读全文
摘要:
这题想不出来。 不浪费时间了。 以后找时间填。 update 就是判奇环咯 然而LCT我搞不出来。。 是因为对于当前的最大生成树,新时间加入的边可能是比前面最大生成树里最小边要大,然后就要找到最大生成树里最小的边。。这样要化边为点我萎了还是写不出来你们去%吧 #include<cstdio> #in 阅读全文
摘要:
这题以前好像是做过的。 很容易发现就是treeDP了。 然后需要一点贪心的思想,对于当前以x为根的子树,删除任意的子节点,实际上答案都是+1,所以可以排序一下,然后先删那些值小的点。 阅读全文