Codeforces Round #167 (Div. 1 + Div. 2)
C. Dima and Staircase
- 线段树维护区间最大值。
D. Dima and Two Sequences
- 由于模数不一定为质数,所以通过拆分质因数来做阶乘取模。
E. Dima and Horses
- 假设一开始所有人都在一个党派里,如果存在不合法的点则改变点的颜色,改变后颜色后与当前颜色相同的点最多只有一个,则继续判断对应点,显然走过去后不会再走回这条边,所以时间复杂度为\(O(M)\)。
D. Dima and Figure
- 根据题意,构成的连通块是凸的,考虑一行行放,如果某行的左端点大于上一行的左端点,则后面的行的左端点必须非降,右端点同理。
- \(dp(i, l, r, s)\)表示前\(i\)行覆盖区间为\([l, r]\)状态为\(s\)的方案数,状态\(s\)表示左右升降情况,转移需要用二维前缀和优化。