Atcoder & codeforce 题解
前言
突然发现一个问题,自己打 \(atcoder\) 和 \(codeforces\),紧紧是打了,好像并没有积累到,即使补了题印象也很差。所以出了个专栏,对自己做大记忆恢复术。这篇巨大的题解从去年 \(11\) 月开始,包含自己已经补过的 \(abc\),\(arc\) 以及 \(cf\),可以说工程量比模拟赛总结还大,所以我打算只总结比较有启发意义的,大体就是蓝题及以上的题。
Arc165
C
\(DP\),先确定一个转移顺序,我们考虑从上到下,从左到右。转移的话需要考虑如果涂了一个下右面的网络边,那与它相邻的下面的格子和右边的格子的上左边就不能涂了,涂上左边时是同理的。画一画,我们就得到了一个很有用的性质,只有被一条从右上到左下的对角线穿过的 左上边 和 右下边 转移是相互影响的。也就是下面的图。

一句话概括就是同色的转移一下,然后不同色的块乘法原理一下。对于同色的转移,我们给每个 左上边 和 右下边 都编个号,然后发现转移就是个斐波那契数列。
D
怎么构造,不妨从左到右,我们在从左到右扫的过程中,要么把已有的线段向右延申,要么已有线段断掉,要么建新的线段,延申的时候延申最短的,考虑这样为什么是对的。
你可能在想为什么不能把两个相邻的区间,较长的变短,较短的变长,仔细考虑,发现根本不会有这种情况,如果存在,完全可以直接把两个区间合并。

浙公网安备 33010602011771号