首页 > 其他分享 >CF1285D Dr. Evil Underscores 题解

CF1285D Dr. Evil Underscores 题解

时间:2022-11-09 17:58:09浏览次数:52  
标签:std CF1285D int 题解 Underscores solve b2 using include

给定一个序列 \(a\),选取一个 \(x\),使 \(\max_{i=1}^na_i\oplus x\) 最小。

看到这种题直接按位考虑,如果最高位全是 \(1\) 那把 \(x\) 的这位全变成 \(1\),如果最高位全是 \(0\) 那把 \(x\) 的这位全变成 \(0\)。如果有 \(0\) 有 \(1\),\(x\) 的这一位不管怎么取 \(\max_{i=1}^na_i\oplus x\) 都要算上 \(2^k\),对于下一位就按照这位取 \(0\) 还是 \(1\) 去分治,取较小的就行了。因为最多递归 \(\log w\) 次,每层需要 \(\mathcal O(n)\),所以复杂度是 \(\mathcal O(n\log w)\)。

//不向焦虑与抑郁投降,这个世界终会有我们存在的地方。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using std::cin;using std::cout;
using std::max;using std::min;
constexpr int N=1e5+1;
int solve(const bsi &a,int k){
	if(a.empty()||k<0)return 0;
	bsi b1,b2;
	for(int i:a)(i>>k&1?b1:b2)+=i;
	if(b1.empty())return solve(b2,k-1);
	if(b2.empty())return solve(b1,k-1);
	return 1<<k|min(solve(b1,k-1),solve(b2,k-1));
}
signed main(){
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	std::ios::sync_with_stdio(false);cin.tie(nullptr);
	int n;bsi a;
	cin>>n;a.resize(n);
	for(int&i:a)cin>>i;
	cout<<solve(a,29);
	return 0;
}

关于 basic_stringvectorbasic_string 的各种操作更快,但是空间消耗是 \(32\),而 vector 只需要 \(24\)。

标签:std,CF1285D,int,题解,Underscores,solve,b2,using,include
From: https://www.cnblogs.com/bxjz/p/CF1285D.html

相关文章

  • 洛谷P1605题解分析
    迷宫题目描述给定一个\(N\timesM\)方格的迷宫,迷宫里有\(T\)处障碍,障碍处不可通过。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障......
  • CF1747 题解
    比赛链接:https://codeforces.com/contest/1747题解:AB水题//bySkyRainWind#include<cstdio>#include<vector>#include<cstring>#include<iostream>#include......
  • P1688 新单词接龙问题 题解
    大家好,我喜欢Hash,所以我用Hash通过了这道题。思路:处理方法有点类似于P6521首先我们最终接出的字符串要求其中的小字符串按字典序排序,那么我们就将所有字符串排好序......
  • 问题解决-白鹭引擎Egret Wing3修改项目内容后进行调试,项目仍显示修改前样式
    问题描述:修改前: 修改后: 解决方法:点击上方菜单栏项目-清理,进行项目清理    点击菜单栏项目-调试  重新进行调试。  调试成功后,问题成功解......
  • 问题解决-白鹭引擎Egret Wing3调试出错,输出台显示乱码而且编译终止问题Failed to load
    问题描述:Failedtoloadresource:theserverrespondedwithastatusof404()未能加载资源:服务器响应,状态为404() 解决方法:卸载引擎并重新安装,安装时使用默认路径(C......
  • maven打包失败,Could not resolve dependencies for project...Could not find artifac
    一、问题原因:在阿里私服或者Maven的中央仓库找不到Pom文件引入的Jar,也就是说,你想引的依赖Jar包根本没有成功加载到项目中。二、分析2.1这个包可能处于隐患或者其他原因,原作......
  • CF1750题解
    A.IndirectSort首先,如果\(a_i>a_k\),\(a_i\)就会变大,而这样的操作是没有意义的.因此操作可以转换为\(\forallj,k(j<k)\),如果\(\existsi,i<j\),使得\(a[i]<=a[k]\),......
  • [CSP-S 2022]数据传输 题解
    提示:我这个方法比其它解法还要麻烦,目前最简洁的解法是dottle的解法,推荐阅读,我仅在此说明我的思路。给定\(n\)个点的树,点\(i\)的点权为\(a_i\),给定整数\(k\)。称......
  • 线上问题解决
    1.服务重启2.部署回滚3.限流降级利用日志和故障现场保留的dump文件等进行根因分析;修复故障后在测试环境进行验证,确认没问题后再发布到生产环境;记录故障从发生到彻底......
  • cannot resolve symbol 'String' 问题解决
    在拉取一个新的项目的时候,maven和jdk都是配置好的,没问题,但是String会报红,显示cannotresolvesymbol'String'。maven的setting文件需要更改内容,因公司有自己的特殊的依......