Codeforces Round #172 (Div. 1 + Div. 2)

A. Word Capitalization

  • 模拟。

B. Nearest Fraction

  • 枚举。

C. Rectangle Puzzle

  • 求出两个矩形的点,套简单多边形的面积交板子。

D. Maximum Xor Secondary

  • 枚举位置做为次大值,那么分别向左右两个方向找到第一个比当前值大的值即可。

E. Game on Tree


D. k-Maximum Subsequence Sum

做法一:

  • 对于线段树上的每个区间,维护4个值:
    1. \(ms[i]\)表示取了\(i\)个区间的最大值
    2. \(lms[i]\)表示包含端点的\(i\)个区间的最大值
    3. \(rms[i]\)表示包含端点的\(i\)个区间的最大值
    4. \(lrms[i]\)表示包含左右两个端点的\(i\)个区间的最大值。

做法二:

  • 维护区间最大值以及相应的位置,\(k\)次操作,每次取出区间最大值,然后将相应的区间乘上-1。
posted @ 2017-05-09 16:59  mcginn  阅读(233)  评论(0编辑  收藏  举报