模拟测试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$。

  如果一个块为偶偶,那么这个块没有任何作用,因为无论如何都会抵消掉。

  如果一个块为奇奇,那么先后手交换。

  如果一个块为奇偶,先手可以控制自己下一次作为先手还是后手  。

  如果奇奇块的个数奇数,先手一定可以变为后手,先手必胜。

  其余情况下如果奇偶块的个数为奇数,先手控场,必胜,反之先手必败

posted @ 2019-11-09 10:14  hz_Rockstar  阅读(99)  评论(0编辑  收藏  举报