Codeforces Round #116 (Div. 2, ACM-ICPC Rules)

Codeforces Round #116 (Div. 2, ACM-ICPC Rules)

代码


A. Defragmentation

  • 按颜色分配\(1\)\(\sum_{i=1}^{m}{n_i}\)位置,那么可以得到\(t_i\)表示位置\(i\)最后占据位置\(t_i\),-1表示该位置为空。
  • 那么会出现两种情况:
  1. \(t_1 \to t_2 \to \cdots \to \ {-1}\),即一条链,从后面往前覆盖。
  2. \(t_1 \to t_2 \to \cdots \to t_i \to t_1\),构成一条链,那么找到一个空位置,将其中一个值暂存在空位置上,变成一条链,最后再把暂存的值放到相应的位置上。

B. Divisibility Rules

  • \(2-type\):$$gcd(d, b, b^2, \cdots, b^k) = 1$$
  • \(3-type\):$$(b-1)\ mod\ d =0$$
  • \(11-type\):$$(b+1)\ mod\ d =0$$
  • \(6-type\):分解质因数,判断每种是否都能表示成前3种之一。

C. Letter

  • 枚举边界,统计前半部分大写字母个数,后半部分小写字母个数。

D. Name

  • 尽可能让前缀相等。
  • \(t\)\(s\)的前缀情况特判。

E. Cubes

  • 统计每种颜色的位置。
  • 每种颜色单独做,维护左右边界,当操作次数超过k时缩小范围。

F. Mathematical Analysis Rocks!

  • \[p[a[i]] = b[i] \]

posted @ 2016-10-01 21:00  mcginn  阅读(213)  评论(0编辑  收藏  举报