zoukankan      html  css  js  c++  java
  • 模拟测试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$。

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

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

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

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

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

  • 相关阅读:
    c# 执行windows模拟登录
    c#文件压缩解压
    c#文件上传下载功能实现
    .NET core3.1 使用Jwt保护api
    我所理解的闭包
    数组遍历for forEach for..in for..of
    变量提升
    微信小程序做radio,可以拖动进度条
    css:flex
    css常用布局
  • 原文地址:https://www.cnblogs.com/hz-Rockstar/p/11824377.html
Copyright © 2011-2022 走看看