5.21考试总结
T1
题目:求最大的 \(|l_i-l_j|+|r_j-r_i|\)
然后考虑先按左端点排序干掉一个绝对值,这样的话分类讨论一下
若:\(r_j<r_i\),则原式等于 \(l_j-l_i+r_i-r_j\),此时默认我们是知道 \(l_j,r_j\) 的,那么就变成了求 \(\max{\{r_i-l_i\}}\)
若:\(r_j\ge r_i\),则原式等于 \(l_j-l_i+r_j-r_i\),求\(\max \{-r_i-l_i\}\)
直接树状数组维护即可
T2
题目:给一个长度为 \(n\) 的串进行染色,一共有 \(m\) 种颜色,要求不能出现一个长度为 \(m\) 的区间染成相同的颜色,求方案数
考虑 \(f_{i,j}\) 表示前 \(i\) 个中选了 \(j\) 种颜色的方案数
\(f_{i,j}\) 就可以从前面一个位置转移答案,容易发现当前状态有两种可能会达到,一是前面 \(i-1\) 个位置已经有 \(j-1\) 种不同的颜色,然后最后一个位置填一个和前面的都不一样的,一共有 \(m - j\) 种填法,第二种就是前面的填的挺好的,但是最后填了一个和前面的某个位置 \(k\) 相同的颜色,那么此时一共就会有 \(i - k\) 种不同的颜色,不过这不是我们关心的,我们关心的只是当前位置可以填什么颜色,所以 \(f_{i,j} = f_{i-1,j}\times (m-j) + \displaystyle\sum_{k=j}^{m} f_{i-1,k}\)
总结起来,发现当前状态只会由前一个转移过来,把第一维干掉以后就能发现这必然是可以矩阵快速幂优化的,这题就做完了
T3
这题难死了,不写了,咕咕咕……