摘要:
推荐一道联赛练习题。 题目分析: 你考虑进入一个子树就可能上不来了,如果上得来的话就把能上来的全捡完然后走一个上不来的,所以这就是个基本的DP套路。 代码: 阅读全文
摘要:
题目大意: 题目是将$[0,m)$的数划成了两个集合,其中一个集合的元素个数不超过$n$。问在第一个集合中选出的数加上第二个集合中选出的数的和中没有出现的数有哪些。 题目分析: 很有意思的一道题。方便起见,接下来的所有表述在模意义下进行。选出的数集合用$a_1 \sim a_n$表示 考虑给出的集合 阅读全文
摘要:
题目分析: 我不知道啥是拟阵啊,但有大佬说线性基相关的都是拟阵,所以直接贪心做了。 题目代码: 阅读全文
摘要:
题目分析: 一开始没想到SG函数,其它想到了就开始敲,后来发现不对才发现了需要SG函数。 把每个字母单独提出来,可以发现有用的区间只有两个字母之间的区间和一个位置到另一个字母的不跨越另一个相同字母的位置。 对于这些区间,用区间DP处理出来答案,合并答案的时候用SG函数。 代码: 阅读全文
摘要:
题目分析: 没啥好说的,会单调栈就会做。 代码: 阅读全文
摘要:
题目分析: 这种题目标题写莫比乌斯反演会不会显得太恐怖了,那就容斥算了。 gcd不为1的肯定可以开根。所以把根式结果算出来就行了。 辣鸡题目卡我精度。 代码: 阅读全文
摘要:
题目分析: 考虑一个源点集合$S$,如果$S$能到的点$T$比$S$小,那么$T$全连到$S$里面,其它点就到不了$T$啦。否则我们全连完后$S$集合被迫扩大,所以总能扩大满。 代码: 阅读全文
摘要:
题目分析: 容易想到sa排好序之后,子串排名就是前面的子串减去height数组。所以正着做一遍,倒着做一遍就行了。 代码: 阅读全文
摘要:
题目分析: 我写了史上最丑的后缀数组,怎么办? 首先manacher一遍两个串,这样只用考虑第三问。用$作为间隔符拼接两个串,把第一个串翻转。枚举回文中心,取最长的回文串,对于剩下的部分利用LCP匹配即可。 代码: 阅读全文
摘要:
题目分析: 写的无旋treap应该跑不过,但bzoj判断的总时限。把相关实现改成线段树合并就可以了。 代码: 阅读全文