总结
今天的题还好,不幸拿了 (rank1),只有 (380pts)
实际 (AK) 也不难
前三题都是思维题
后面一题其实不过是简单的数据结构优化 (dp) 的题
用 (GSM) 的话讲就是白开水,(O(nlog n)) 的时间复杂度
然而我 (O(n^2)) 能过,大雾
(T1)
规律题,发现只有形如 (010101···) 或 (101010···) 是不稳定的
设其长为 (s),那么把他变稳定的次数是 (lfloor frac{s+1}{2}
floor)
答案取最大的 (lfloor frac{s+1}{2}
floor) 就行了
考虑稳定的序列是什么样子。其实自己手推一下就行了······
(T2)
思维题,枚举 (i,j),列个方程判断它们能否相遇就好了
(T3)
如何配对?排序从小到大依次配对就行了
然后二分答案,答案相当于它最远能相交到的线段,(check) 一下是否能相交就行了
(T4)
因为是单向道路,路径唯一,所以考虑 (dp)
设 (f_i) 表示 (i) 到首都的最短话费
(f_i = min_{j in ancestor,dep_i-dep_j<=k} f_j+w)
(k,w) 如题所述
于是我凭这么裸的 (dp) 过了
实际上正解应该是 (nlog n) 的
因为它是向上选 (dp) 值最小的
所以我们可以多加一维 (q) 表示 (i) 向上跳 (2^q) 的最小的 (dp) 值
(log) 次更新当前 (f) 就行了
当然可以用线段树维护
(dfs) 遍历时维护不同深度的最小 (f) 值,每次取可用的区间的最小 (f) 值就行了
它也是 (o(nlog n)) 的