CF1903
若 \(k>1\),冒泡排序;否则判断是否已经有序。
初始令 \(a_i=2^{30}-1\),然后对于每个限制,让 \(a_i\leftarrow a_i\&M_{i,j},\;\;a_j\leftarrow a_j\&M_{i,j}\)。
答案可以视作:总和 + 一个后缀 + 一个短一点的后缀 ……
除了总和是一开始就要算的,我们只要把每个和为正的后缀累加即可。
题意:一次操作使一个数 \(+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\) 位没有。高维后缀和。
把点分为两类:\(x\equiv y\pmod 2\) 和 \(x\not\equiv y\pmod 2\) 的。
起点已经确定,其实哪边赢只和终点是哪类点有关。
随机推荐
- python之pycharm常见使用技巧
一.ctrl+d:复制
- netstat 命令查看端口状态详解
转载请注明出处: netstat 可以查看服务器当前端口列表及指定端口的连接状态等: -t : 指明显示TCP端口,t是TCP的首字母. -u : 指明显示UDP端口,u是UDP的首字母 -p : 显 ...
- mysql too many connections 解决
本文为博主原创,转载请注明出处: 由于在开发过程中,很多人连接共同一个数据库,在工具连接到mysql, 并执行sql时,提示 too many connections ,这是由于数据库连接太多,以致于 ...
- 一种基于linux系统的精准流量统计方法
前言: 在linux系统关于流量统计,已经有开源的工具,比如nethogs,nload和iptraf.它们适合我们在PC上直接监控某台设备的流量情况,但并不适合我们应用到自己的程序中去. 如果要在 ...
- [转帖]优化命令之iotop命令
文章目录 引言 一.iotop简介 1.iotop安装 2.iotop语法 3.iotop参数 二.I/O的常用快捷键 三.交互模式 四.iotop示例 1.只显示正在产生I/O的进程 2.显示指定P ...
- [转帖]Nginx Ingress 高并发实践
概述 Nginx Ingress Controller 基于 Nginx 实现了 Kubernetes Ingress API,Nginx 是公认的高性能网关,但如果不对其进行一些参数调优,就不能充分 ...
- 麒麟信安V3.4 安装PG15的过程
麒麟信安V3.4 安装PG15的过程 背景 发现基于OpenEuler的几个系统使用CentOS的rpm包 安装PG数据库时有问题. 会提示缺少依赖的so文件. 今天想着解决一下, 就百度了一下并且进 ...
- 【转贴】libcrypto.so.10丢失导致sshd无法运行解决方案
http://www.cnblogs.com/billy98/p/4226023.html libcrypto.so.10丢失导致sshd无法运行解决方案 服务器由于掉电开启系统后无法远程ssh,重启 ...
- Windows 可以操纵linux内文件,与本地一致的工具
https://github.com/allanrbo/filesremote/releases/ 感觉挺好的.
- requests模块安装
使用python写接口,必不可少的就是requests,所以事先要在python中安装requests 一.使用pip install安装(项目的命令行终端使用) 1.配置下载源地址路径(清 ...