A

若 \(k>1\),冒泡排序;否则判断是否已经有序。

B

初始令 \(a_i=2^{30}-1\),然后对于每个限制,让 \(a_i\leftarrow a_i\&M_{i,j},\;\;a_j\leftarrow a_j\&M_{i,j}\)。

C

答案可以视作:总和 + 一个后缀 + 一个短一点的后缀 ……

除了总和是一开始就要算的,我们只要把每个和为正的后缀累加即可。

D2

题意:一次操作使一个数 \(+1\),最多 \(k\) 次操作。问最终整个序列的按位与最大是多少。

直接看 D2,D1 略。

贪心,要尽可能让答案的二进制位变成 \(1\)。而答案的一个位上是 \(1\),则所有数的这一位都得是 \(1\)。

所以 D1 的解法:按位从高到低,如果当前位可能是 \(1\),就把所有数加到这一位是 \(1\)。

D2 的解法需要观察性质:当一个数被加到某一位是 \(1\),其更低位一定都是 \(0\)。

首先可以快速求出来答案的最高位是第几位,因为可以预处理每个数使第 \(i\) 位为 \(1\) 要加多少。

假设答案最高位为 \(w\),注意到 \(a_i<2^{20}\)。于是若 \(w\ge 20\),变换后所有数都是 \(2^w\)。若剩下 \(c\) 次操作,最终答案为 \(2^w+\lfloor\dfrac{c}{n}\rfloor\)。

剩下情况就是 \(w\le 19\)。假设现在当前答案 \(ans\),在贪第 \(i\) 位,我们要判断把所有数加到第 \(i\) 位是 \(1\) 的代价能否承担。(D1 的解法就是直接循环求和判断)

记录目前已经被加过的数的个数 \(cnt\),这些数目前剩下的所有位都是 \(0\),则贡献 \(cnt\times 2^i\)。

剩下的数只需考虑第 \(i\) 位是 \(0\) 的。这些数一定满足:之前 \(ans\) 的位都有。因为只有这样才不会在之前就被操作。

设这类数有 \(f_i\) 个,这类数低于 \(i\) 位的和是 \(g_i\),则贡献的答案是 \(f_i\times 2^i-g_i\)。

怎么求 \(f,g\)?这些东西满足高位在 \(ans\) 的位上有,同时第 \(i\) 位没有。高维后缀和。

E

把点分为两类:\(x\equiv y\pmod 2\) 和 \(x\not\equiv y\pmod 2\) 的。

起点已经确定,其实哪边赢只和终点是哪类点有关。

随机推荐

  1. java基础(16)--super与this

    一.this简介 1.this.  this() 2.静态方法无法使用 3.不省略的情况:区分局部变量与实例变量,比如set方法中用到   二.super简介 1.只能出现在实例方法或构造方法中 2. ...

  2. @Async异步操作及异步线程池

    本文为博主原创,转载请注明出处: @Async 用来实现异步请求操作,使用@Async 注解时,需要同时使用 @EnableAsync 注解,使用 @EnableAsync 注解用于开启异步请求. 如 ...

  3. MySQL高可用搭建方案之(MHA)

    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 原文地址 MHA架构介绍 MHA是Master High Av ...

  4. [转帖]直接内存监控不准确,netty玩了什么花?

    https://segmentfault.com/a/1190000044509636     是挺久没有"宠爱"我们netty小婊贝了,最近又开始搞事了. 于是,趁机探究了下MX ...

  5. [转帖]linux中的set -e 与set -o pipefail

    https://www.cnblogs.com/xingmuxin/p/8431970.html 1.set -e "Exit immediately if a simple command ...

  6. Windows平台文件拆分与完整性检查的过程

    Windows平台文件拆分与完整性检查的过程 场景 有时候在没有linux主机的情况下, 自己下载下来的文件比较大. 比较难以上传到一些特殊的系统/主机上面. 这个时候需要将文件进行拆分. 所以可以通 ...

  7. [转帖]Perf IPC以及CPU性能

    https://plantegg.github.io/2021/05/16/Perf%20IPC%E4%BB%A5%E5%8F%8ACPU%E5%88%A9%E7%94%A8%E7%8E%87/ Pe ...

  8. 二进制安装Mysql数据库的快速方法

    二进制安装Mysql数据库的快速方法 摘要 还是国产操作系统 rpm包可能不太兼容,为了简单准备使用tar包方式安装mysql数据库 这里简单记录一下过程. 为以后使用. 介质下载 下载二进制的tar ...

  9. Redis-dump Docker搭建的快速指南

    背景 最近学习redis想能够将dump文件进行导入处理. 看到比较好的办法都是使用ruby ,但是公司的网络太感人了. 想着比较简单的办法是通过docker方式来搭建. 这里简单记录一下搭建过程. ...

  10. ARC150D - Removing Gacha (树上期望)

    Link 题意: 给一棵 \(n\) 个节点的树,称一个点是好的,当且仅当它到根的路径上都是黑色(包括自己).每次在不好的节点中随机选一个把它涂成黑色(不管原来它是否是白的),直到所有点都是好的为止. ...