首页 > 其他分享 >World Tour Finals 2022 Day2 E: Adjacent Xor Game

World Tour Finals 2022 Day2 E: Adjacent Xor Game

时间:2024-06-17 17:21:27浏览次数:12  
标签:lfloor cnt Xor int Day2 vis 2022 ans

考虑从高到低位做,不断贪心的一个过程。即假设把当前所有数 \(a_i\) 看成 \(\lfloor \frac{a_i}{2^d} \rfloor\),有当前最优答案 \(ans_d\);现在把所有数看成 \(\lfloor \frac{a_i}{2^{d-1}} \rfloor\),推出下一步的答案 \(ans_{d-1}\)。

假设 \(/2^d\) 时,每一步 xor 完的序列是 \(a_1,a_2,..,a_m\),其中 \(a_i < a_{i+1}\) 且 \(a_m=ans_d\)(这里忽略了所有 \(=0\) 的数)。从 \(d\to d-1\) 时,现在每个 xor 的数会变为 \(2x\) 或 \(2x+1\),并且会加入一堆 \(1\)。

如果没有新加入的 1,那么显然 \(ans_{d-1} = ans_d\times 2\)。发现新加入的一堆 1 对序列很有影响,因为它们只能被插在“空位”里,如果“空位”不足就会不得不增加 \(ans_{d-1}\)。

据此可以写出一份暴力,计算一个数组 \(a\) 的答案:

int wk(vi o){
	n=o.size();For(i,1,n)a[i]=o[i-1],vis[i]=0;
	int now=0,res=0;
	Rep(i,30,0){
		int cnt=0,cnt2=now;
		For(j,1,n){
			if(!vis[j] && (a[j]>>i&1)) ++cnt,vis[j]=1;
			else if(vis[j] && (a[j]>>i&1)) ++cnt2;
		}
		if(cnt<=cnt2) now+=(cnt2-cnt),res=res*2;
		else if(cnt<=cnt2+1) res=res*2+1;
		else {
			cnt-=(cnt2+1);
			now+=cnt;
			res+=cnt;
			res*=2;
			res+=1;
		}
	//	cout<<"res "<<i<<" "<<res<<" "<<now<<"\n";
	}
	return res;
}

标签:lfloor,cnt,Xor,int,Day2,vis,2022,ans
From: https://www.cnblogs.com/Rainbowsjy/p/18135020

相关文章

  • 【专题】2022年建筑近零碳升级白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34225原文出处:拓端数据部落公众号近零碳建筑的减碳路径涵盖了近零能耗建筑的技术理念,包括被动式节能和主动式节能,以及建筑整体的智能化和人性化改造。此外,加大新能源系统的建设力度和采用购买国家核证自愿减排量等碳交易方式,也是为了达到满足碳排......
  • 使用Jupyter(python+opencv)实现特别难的脚本-Day2
    Day2那昨天实现了这个自动挖土,我发现这个yb也是很扯0的东西,所以今天简单优化优化,完了再简单优化一下双手,写个yb吧。首先依旧是库一小堆儿fromPILimportImageimportpyautoguiimportrandomimportpygetwindowasgwimporttime然后那既然是优化那肯定是面向对象......
  • Day28.学校与班级建关联
    1.学校与班级建关联_班级类,将班级和班级对应的课程信息生成对象'''班级'''classClass:#__init__中,初始化单个对象,记录每个班级独有的东西def__init__(self,class_name):self.class_name=class_name#初始班级时,班级没有课程表self......
  • Day24| 77. 组合 、216.组合总和III 、17.电话号码的字母组合
    77.组合对着在回溯算法理论基础给出的代码模板,来做本题组合问题,大家就会发现写回溯算法套路。在回溯算法解决实际问题的过程中,大家会有各种疑问,先看视频介绍,基本可以解决大家的疑惑。本题关于剪枝操作是大家要理解的重点,因为后面很多回溯算法解决的题目,都是这个剪枝套路......
  • Day28.学校类的定义与使用
    1.学校类的定义与使用_学校类__创建学校并关联班级 学校类__创建学校并关联班级,代码如下:#整合-->解耦合-->扩展性增强classSchool:#学校类#学校共有的数据school_name='OLDBOY'#每个学校独有的东西def__ini......
  • Day27.属性查找与绑定方法
    1.属性查找与绑定方法_类和类下的对象访问数据属性 类和类下的对象访问数据属性代码如下:classStudent:#1.变量的定义stu_school='oldboy'#记录类下实例化次数count=0#空对象,'egon',18,'male'def__init__(self,x,y,z):......
  • WPF Path GeometryCombineMode Union, Exclude,Intersect,Xor
    union<Windowx:Class="WpfApp172.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • VS2022最新版Bug
    自从我昨天更新了VS2022,还有下载了VS2022预览版本后,点击文件资源管理器,Handycontrol所在的目录,才到src所在的目录,还没有点进去查看sln所在的目录,文件资源管理器黑屏直接退出,重启电脑也没好,其他的目录,或者其他我下载的源码都能查看,本来sln后缀应该和VS2022图标一样是紫色的,但是那个......
  • 洛谷P8807 [蓝桥杯 2022 国 C] 取模
    题目:解读(思路与分析):题目总结:对于给定的整数n和范围m,要找到两个不同的x和y,它们除以n后的余数相等。思路:对于每组给出的n,m询问,可以通过遍历范围从1到m的所有可能的j,并计算n对j取模的余数。使用一个集合来存储已经出现过的余数,如果当前余数已经存在于集......
  • Day21 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数 、236. 二叉树的最近公
    530.二叉搜索树的最小绝对差需要领悟一下二叉树遍历上双指针操作,优先掌握递归题目链接/文章讲解:https://programmercarl.com/0530.二叉搜索树的最小绝对差.html视频讲解:https://www.bilibili.com/video/BV1DD4y11779思考中序遍历的同时,用pre记录一下上一个节点。classSolut......