E - Multigate (湖北省) (贪心+位运算)

2022—暑假 - Virtual Judge (vjudge.net)

题意:

给两个数组 ai, bi 和一个正整数 x0,有递推 xi = { xi−1 and ai bi = 0 xi−1 or ai bi = 1 T 次独立询问 x0, k,   问可以反转至多 k 个 bi 后最大的 xn.

思路:

  • 贪心, 将越后面的&修改为|, 越优
  • 整么,遇到位运算,一般一位一位的看,从最高位,看 后面是&要求2边都要是1,而^有一边就行了
  • 反面思考, 为什么修改右边,而不是左边, 如果左边有&不满足,修改了满足, 若后面&不满足,一样寄,
  • 而且要想后面那个满足,&1,一定是这样,那么把它变成^一样满足,所以直接把后面弄好就行了
  • 于是从单个位直接弄到整个数
  • 用前缀后缀的思想处理

后记:

  • 自己想的时候,有考虑到先改后边的,但是没有提供严格的证明,
  • 这个时候就可以大胆把他想成一个贪心,在看看有没有证明方法,利用反面,正面啥的
  • 而不是 这个散光出现后,就消失,没有抓住
posted @ 2022-07-17 17:59  VxiaohuanV  阅读(51)  评论(0编辑  收藏  举报