20210816K 复盘
不会,想不出来
s2oj545 A.地中海气候
考虑可以暴力用堆模拟,复杂度 \({\cal O}(nm\log n)\)。尝试将后面的 $\log $ 优化掉
尝试开桶,一开始将前 \(p\) 个数扔进桶里,维护指针 \(now\) 指向最大值的桶
不断向后加数,若新加的数 \(\geqslant now\) 则会被立即取走。
否则新加的数加进桶里,然后取走 \(now\) 数值,桶--,如果桶空了就不断 \(now--\) 直到找到一个非空的桶
这样就得到了 \({\cal O}(nm)\) 做法,与线性构建 prufer 序列的思想异曲同工
s2oj546 B.东非大裂谷
考场上一眼发现应该两端是极值,然后不会了。摁着这个性质大力思考最后无果(事实证明单这个性质是完全不可 dp 的)
却没有继续探索最优解的性质
相比于两段极值的限制来说,更强的限制应该是:成单调不增或者单调不减,因为如果不是单调的,截取使其单调,答案一定向更优方向倾斜。
这样,dp 方法是显然的
s2oj547. C.地转偏向力
题目说明:\(N\) 保证是 \(5\) 的倍数,秒懂方法。
但是由于手玩的艰难以及根本实现不出来最终无果
显然我们应该研究 \(5\times 5\) 方阵的回路,然后将若干个 \(5\times 5\) 方阵拼起来,使其回路相沟通
难点在于:如何找到恰能满足我们构造需要的接口的 \(5\times 5\) 填法,以及如何打印答案。
看不懂 std,遂弃疗
s2oj622. D.k 子串
草率了。考场上看了一眼,哦,发现 border 和回文还是不一样的,这样的话扩展过程可能不具备什么能继承的信息。遂不会。然后敲 \(n^2\) 暴力走人
而事实上,扩展边界过程是可以继承信息的,考虑若某串 \([l, r]\) 有某 border,那么将该 border 同时除去首尾字符,它们构成 \([l+1,\ r-1]\) 串的 border。所以我们就能从 \([l,\ r]\) 的 border 长度推知 \([l-1,\ r+1]\) 的答案上界,这样以来暴力哈希判断就是 \({\cal O}(n)\) 的了
总结: 一定要仔细想,多想,卡住了一定说明想错方向了,应该及时换思路