省选模拟6
A.Yist
还是常用的根号思想,将点根据度数与$\sqrt n$的关系分成两类,显然轻点的度数之和不会超过$n\sqrt n$,重点的个数不会超过$\sqrt n$,于是可以暴扫每个轻点的出边预处理出对于每个点的贡献,然后对于每个点暴力扫周围的重点统计答案。
记一类图论上关于度数启发式合并的复杂度:一张$\sqrt n$个点的完全图,可以卡成$n\sqrt n$,所以我这道题考场的复杂度比正解多了个$log$。。。然而出题人没卡我,虽然我打挂爆零了。
B. Ernd
一道简单的后缀自动机上dp,然而我没想到?
发现向后面加一个字符等价于走一条边,向前面加一个字符等价与在原节点不动或者在parent tree上走向某一个儿子。从实际含义考虑可以发现在长度最小的时候,endpos集合会最大,所以在每个节点都尽量停下是最优的,所以贪心的dp就可以了。
C. Sanrd
发现LIS与LDS的交集最大为1,所以如果一个LIS不合法,当且仅当所有的LDS都经过这个LIS,也就是说,假设经过i的LDS个数为$f_i$,那么LIS的所有位置的f之和为所有的LDS个数。
所以可以发现,如果两个LIS的f之和不同,那么必然有一个是合法的。所以只要在转移的过程中记录下两种不同的f值,最终检验一下是否合法即可。