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\)表示左右升降情况,转移需要用二维前缀和优化。
posted @ 2017-05-09 23:13  mcginn  阅读(124)  评论(0编辑  收藏  举报