Codeforces Round #193 (Div. 2)

A. Down the Hatch!

  • 模拟。

B. Maximum Absurdity

  • 处理\(max\_id[i]\)表示后部分\([a_i,a_{i+k-1}]\)最大的下标。

C. Students' Revenge

  • \(b_i\)降序,\(a_i\)升序排序
  • 预留\(p-k\)个数,剩余的按\(a_i\)降序扔进优先队列。

D. Theft of Blueprints

  • 因为对于任意大小为\(k\)的子集,有且只有1个点和这\(k\)个点连接。那么我们可以枚举这个点,考虑该点的边的贡献,假设有\(t\)条边,则每条边的贡献为\(c_i\binom{t}{k-1}\)
  • 最后需要除以\(n!\),且没有取模,所以目前还没办法做。
  • 考虑\(k>=3\),此时\(n=k+1\),否则无法满足题目的条件,此时就可以简化上面的计算,\(,k=1,2\)单独考虑即可。

E. Binary Key

  • \(sum\_i\)表示串\(q\)的前缀和。
  • \(r=p\ \%\ k\),则\(strlen(s)=sum\_k\cdot \lfloor\frac{p}{k}\rfloor+sum\_r\)
  • 枚举\(sum\_r\),贪心匹配,记录字典序最小的方案。
posted @ 2017-04-01 11:39  mcginn  阅读(158)  评论(0编辑  收藏  举报