摘要:
找规律害人害己。 设 表示操作 次之后第 个左括号的位置,知道 之后可以简单二分出答案。 首先考虑 的递推式,左括号的位置改变有两种情况。((->(X 和 ()->)(,对应过来就是 \(f(k+1,x)=\min(f( 阅读全文
摘要:
一种常数较小的能在单次 时间内解决链修改链查询的数据结构。 普通的 LCT 也是 的,但是常数巨大。原因是它用辅助树维护了一个动态的虚实链剖分,在没有动态加边删边的问题中这显然是没有必要的。我们考虑将 LCT 强行静态化来减小长度。 具体的,我 阅读全文
摘要:
补一下往年的构造题。。。 大概是 的两倍往下,这启示我们每个栈最多只放两个元素。 首先考虑 的分,容易得到一个策略:留一个空栈不放,每个栈最多放两个。如果当前卡牌存在一个栈顶/栈底和它一样,那当前牌总是可以消掉的。否则当前栈中的卡牌一定两两不同,那一定还 阅读全文
摘要:
出现次数大于长度一半的数,一般来讲摩尔投票即可,但是还有神秘做法。 考虑统计每个二进制位上 0/1 的出现次数,如果绝对众数存在,那么它的那一位上一定是出现较多的那个。我们可以 找出可能的答案。注意到出现次数具有可减性,在一些情况下比摩尔投票维护起来更简单。 比如我们换 阅读全文
摘要:
大概形如每次给定一个区间 ,每对 的 会有一个贡献,要求所有点对的贡献(取min/max,数颜色等)。 考虑点对共有 个,遍历一遍所有对也会超时。考虑删除一些无用的点对(例如包含的区间里面有比它更优的),那不看它也会有贡 阅读全文
摘要:
可删除线性基板子。 显然我们贪心的希望越高位的线性基越早被删除,于是我们对于每一位顺便记录一下被删除的时间。如果要插入的数被删除时间比较晚,则与交换该位于要插入的数。其它和普通线性基一样。 其它部分参见 [WC2011]最大XOR和路径。 ```cpp #include #define bt bit 阅读全文
摘要:
求一个计数方案奇偶性的题考虑套路的交换两个元素。考虑最开始选的两条边,如果它们没有交,那么互换顺序之后结果不变。我们只需要统计相交的情况即可。 再考虑边相邻的情况。对于`y x z`,按两种顺序缩边的结果分别为 $\operatorname{NAND}(\operatorname{NAND}(y,x 阅读全文
摘要:
100黑祭。 首先以终点为根。 先考虑简单一点的情况:如果起点终点相邻,那么方案一定是让老鼠先走到一个叶子节点,然后断掉该节点到根路径上其它的分支。于是我们令 表示从 开始走到 子树里的一个叶节点再返回所需的最小代价,每次dp从儿子里的次大值转移即可。 考虑不相邻的情况, 阅读全文