模拟测试106
T1:
断环成链并复制一倍,然后区间DP。
设状态为合并区间$[l,r]$的最大得分。
时间复杂度$O(n^3)$。
T2:
最后一次向上爬不会滑下来,于是可以枚举最后一次吃的药丸。
将所有药丸按照$A-B$排序,每次贪心地选择最大的几个值,二分出到达的天数。
还需要判断中间高度是否严格大于$C$,如果不是,那么不能成功登顶。
如果枚举的药丸不在前几个最大值中,直接用ST表查询$A-B-C$的最小值是否小于0;
其他情况下,后面的数值会错位,再维护一个错位的ST表即可。
时间复杂度$O(nlogn)$。
T3:
因为两个人都要使自己的得分最大,于是如果有一种翻转方式能使棋子全都正面向上,对手一定会无条件地帮忙。
所以先判断能否让所有棋子都正面向上。
将所有行列看做点,棋子看作边,正面棋子所在行列合并,反面棋子所在行列连边。
这样每条边两侧的状态都不同。
二分图染色就可以判断,然后根据$(n+m)$奇偶性判断$0/1$。
然后根据奇偶分层,算出一个连通块的两个$si$。
如果一个块为偶偶,那么这个块没有任何作用,因为无论如何都会抵消掉。
如果一个块为奇奇,那么先后手交换。
如果一个块为奇偶,先手可以控制自己下一次作为先手还是后手 。
如果奇奇块的个数奇数,先手一定可以变为后手,先手必胜。
其余情况下如果奇偶块的个数为奇数,先手控场,必胜,反之先手必败