Codeforces Round #178 (Div. 2)

A. Shaass and Oskols

  • 模拟。

B. Shaass and Bookshelf

  • 二分厚度。
  • 对于厚度相同的书本,宽度竖着放显然更优。
  • 宽度只有两种,所以枚举其中一种的个数,另一种的个数是单调的。

C. Shaass and Lights

  • 考虑一段连续未点亮的灯,显然每次操作都只会将区间长度减一,继而推得长度L的方案数为(2^{L - 1})种。
  • 考虑有若干段Li合并,对于一个区间来说,内部的操作顺序应该是相对不变的,那么就是挖空填即可。
  • 注意判断两端的状态,即考虑1、n的状态。

D. Shaass and Painter Robot

  • 注意起点必然是在边界上。
  • 对于第1行和第n行,如果需要染色的格子被访问过,那么对应的两条对角线的所有点必然也被访问过了。所以为了判断是否所有需要染色的格子均染色,只需要判断上下两行的格子状态(不会严格证明)。
  • (dp(i,j,k))表示访问格子(i, j),方向为k时的最早时间,答案就是需染色的格子的时间最大值。
  • 由于最后终点可能在第1列或第m列,所以还需要记录这两列的时间信息。

E. Shaass the Great

  • 题意相当于切掉一条边后,将这条边重新连接两个点,使得所有点对的距离和最小。
  • 切掉一条边后,属于同一子树的点对距离和不变。那么只要考虑两部分的距离和即可。
原文地址:https://www.cnblogs.com/mcginn/p/6291287.html