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\) 的。
起点已经确定,其实哪边赢只和终点是哪类点有关。
随机推荐
- shell脚本(4)-格式化输入
一.read命令 1.概念: 默认接受键盘的输入,回车符代表输入结束 2.read命令选项 -p:打印信息 -t:限定时间 -s:不回显 -n:输入字符个数 3.举例说明 (1)模拟登录 [root@ ...
- bitcask论文翻译/笔记
翻译 论文来源:bitcask-intro.pdf (riak.com) 背景介绍 Bitcask的起源与Riak分布式数据库的历史紧密相连.在Riak的K/V集群中,每个节点都使用了可插拔的本地存储 ...
- 基于java+springboot的外卖点餐网站、外卖点餐管理系统
该系统是基于java+springboot开发的外卖点餐网站.外卖点餐管理系统.是给师弟开发的课程作业.运行过程中的问题,可以在github咨询作者. 演示地址 前台地址: http://food.g ...
- phpcms - 获取单网页 , 例如关于我们
{pc:get sql="select * from phpcms_page where catid=2" num="1"} {loop ...
- 如何从零开始实现TDOA技术的 UWB 精确定位系统(5)
这是一个系列文章<如何从零开始实现TDOA技术的 UWB 精确定位系统>第5部分. 重要提示(劝退说明): Q:做这个定位系统需要基础么? A:文章不是写给小白看的,需要有电子技术和软件编 ...
- 使用阿里canal实现mysql与Elasticsearch增量同步
一.背景介绍 最近在做一个地理信息相关的项目,需要维护大量的地址描述数据,同时需要提供对数据检索的功能,准备采用Elasticsearch(6.7)实现.那么问题就来了,地址数据需要同时在MySQL和 ...
- [转帖]字符集 AL32UTF8 和 UTF8
https://blog.51cto.com/comtv/383254# 文章标签职场休闲字符集 AL32UTF8 和 UTF8文章分类数据库阅读数1992 The difference betwee ...
- [转帖]MySQL联合索引(复合索引)
Mysql联合唯一索引添加相同数据插入报错 联合索引在两个字段都存在唯一,将报错. 1.添加联合索引 alter table "表名" add unique index(`字段1` ...
- Prometheus+alertmanager实现告警的简单验证
Prometheus+alertmanager实现告警的简单验证 背景 学习源自: http://www.mydlq.club/article/126/ 上午没搞定, 中午睡不着,继续学习处理. 发现 ...
- [转帖]优化命令之sar——最牛命令
目录 一:sar命令概述 1.1sar概述 1.2sar常用选项 1.3常用参数 二:CPU资源监控 2.1整体CPU使用统计(-u) 2.2各个CPU使用统计(-P) 2.3将CPU使用情况保存到文 ...