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
- 题意相当于切掉一条边后,将这条边重新连接两个点,使得所有点对的距离和最小。
- 切掉一条边后,属于同一子树的点对距离和不变。那么只要考虑两部分的距离和即可。