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)\) 的了

总结: 一定要仔细想,多想,卡住了一定说明想错方向了,应该及时换思路

posted @ 2021-08-16 19:07  熹圜  阅读(7)  评论(0编辑  收藏  举报