Educational Codeforces Round 157 (Rated for Div. 2) D. XOR Construction (思维题)
题目
给定长为n-1(n<=2e5)的整数序列a,第i个数a[i](0<=a[i]<=2n)
构造一个长为n的整数序列b,满足:
1. 0到n-1在b数组中每个数恰好出现一次
2. 对于,
题目保证一定有解,有多组时可以输出任意一组
思路来源
cfAC代码
题解
首先,如果对左侧前i项做一个前缀的异或和,
即可得到
再钦定b[1]=0,即可得到一组b值,满足第二个条件
但是,这组数并不一定是[0,n-1]连续的,如第二个样例:
6
1 6 4 6 1
ans:0 1 7 6 2 3
发现并不连续,然后就不会做了,最终写了个分治的O(nlogn)的乱搞
事实上,按每位考虑[0,n-1]时,0的数量一定是>=1的数量的
所以,如果0的数量小于1的数量,就将这一位翻转即可
如果右起第i位出现0的数量等于1的数量的情形,说明低位也一定都是相等的情况
即的数都出现过一遍,此时可以任意两两交换,那么不翻转即可
例如,i=0时,表示一半奇数一半偶数,
表示此时i和i^1是成对出现的,
是否翻转都不会改变当前连号的状态
代码1(性质)
// Problem: D. XOR Construction
// Contest: Codeforces - Educational Codeforces Round 157 (Rated for Div. 2)
// URL: https://codeforces.com/contest/1895/problem/D
// Memory Limit: 512 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define per(i,a,b) for(int i=(a);i>=(b);--i)
typedef long long ll;
typedef double db;
typedef pair<ll,int> P;
#define fi first
#define se second
#define pb push_back
#define dbg(x) cerr<<(#x)<<":"<<x<<" ";
#define dbg2(x) cerr<<(#x)<<":"<<x<<endl;
#define SZ(a) (int)(a.size())
#define sci(a) scanf("%d",&(a))
#define scll(a) scanf("%lld",&(a))
#define pt(a) printf("%d",a);
#define pte(a) printf("%d\n",a)
#define ptlle(a) printf("%lld\n",a)
#define debug(...) fprintf(stderr, __VA_ARGS__)
const int N=2e5+10;
int t,n,a[N],xo;
void sol(){sci(n);//printf("m:%d\n",m);rep(i,1,n-1){sci(a[i]);a[i]^=a[i-1];}per(j,20,0){int cnt=0;rep(i,0,n-1){cnt+=(a[i]>>j&1);}if(cnt>n-cnt)xo|=(1<<j);}
}
int main(){t=1;//(t); // t=1while(t--){sol(); rep(i,0,n-1){printf("%d%c",a[i]^xo," \n"[i==n-1]);}}return 0;
}
代码2(赛中乱搞)
// Problem: D. XOR Construction
// Contest: Codeforces - Educational Codeforces Round 157 (Rated for Div. 2)
// URL: https://codeforces.com/contest/1895/problem/D
// Memory Limit: 512 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define per(i,a,b) for(int i=(a);i>=(b);--i)
typedef long long ll;
typedef double db;
typedef pair<ll,int> P;
#define fi first
#define se second
#define pb push_back
#define dbg(x) cerr<<(#x)<<":"<<x<<" ";
#define dbg2(x) cerr<<(#x)<<":"<<x<<endl;
#define SZ(a) (int)(a.size())
#define sci(a) scanf("%d",&(a))
#define scll(a) scanf("%lld",&(a))
#define pt(a) printf("%d",a);
#define pte(a) printf("%d\n",a)
#define ptlle(a) printf("%lld\n",a)
#define debug(...) fprintf(stderr, __VA_ARGS__)
const int N=2e5+10;
int t,n,a[N],xo;
vector<int>b,c;
bool dfs(int b,vector<int>l,vector<int>r){if(SZ(l)!=SZ(r))return 0;if(!SZ(l) && !SZ(r))return 1;if(b<0)return 1;if(!SZ(l) || !SZ(r))return 0;vector<int>LL,LR,RL,RR;for(auto &v:l){if(v>>b&1)LL.pb(v);else LR.pb(v);}for(auto &v:r){if(v>>b&1)RL.pb(v);else RR.pb(v);}if(xo>>b&1){return dfs(b-1,LR,RL) && dfs(b-1,LL,RR);}if(dfs(b-1,LL,RL) && dfs(b-1,LR,RR))return 1;xo|=1<<b;return dfs(b-1,LR,RL) && dfs(b-1,LL,RR);
}
void sol(){sci(n);b.pb(0);c.pb(0);//printf("m:%d\n",m);rep(i,1,n-1){sci(a[i]);a[i]^=a[i-1];b.pb(a[i]);c.pb(i);}dfs(18,b,c);
}
int main(){t=1;//(t); // t=1while(t--){sol(); rep(i,0,n-1){printf("%d%c",a[i]^xo," \n"[i==n-1]);}}return 0;
}
相关文章:
Educational Codeforces Round 157 (Rated for Div. 2) D. XOR Construction (思维题)
题目 给定长为n-1(n<2e5)的整数序列a,第i个数a[i](0<a[i]<2n) 构造一个长为n的整数序列b,满足: 1. 0到n-1在b数组中每个数恰好出现一次 2. 对于, 题目保证一定有解,有多组时可以输出任意一组 思路来源 …...
【unity实战】实现类似英雄联盟的buff系统
文章目录 先来看看最终效果前言开始BUFF系统加几个BUFF测试1. 逐层消失,升级不重置剩余时间的BUFF2. 一次性全部消失,升级重置剩余时间的BUFF3. 永久BUFF,类似被动BUFF4. 负面BUFF,根据当前BUFF等级计算每秒收到伤害值,…...
【C语言基础教程】函数指针与指针大小
文章目录 前言一、函数指针1.1 函数指针的概念1.2 三个示例代码示例1: 使用函数指针调用不同的函数示例 2: 使用函数指针实现回调函数示例 3: 使用函数指针数组 二、指针的大小2.1 前述2.2 指针大小如何决定?两方面理解 总结 前言 在C语言中,指针是一项…...
Web前端—网页制作(以“学成在线”为例)
版本说明 当前版本号[20231105]。 版本修改说明20231105初版 目录 文章目录 版本说明目录day07-学成在线01-项目目录02-版心居中03-布局思路04-header区域-整体布局HTML结构CSS样式 05-header区域-logo06-header区域-导航HTML结构CSS样式 07-header区域-搜索布局HTML结构CSS…...
Hive【Hive(八)自定义函数】
自定义函数用的最多的是单行函数,所以这里只介绍自定义单行函数。 Coding 导入依赖 <dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>3.1.3</version></dependency>…...
linux远程桌面管理工具xrdp
一、概述 我们知道,我们日常通过vnc来远程管理linux图形界面,今天分享一工具Xrdp,它是一个开源工具,允许用户通过Windows RDP访问Linux远程桌面。 除了Windows RDP之外,xrdp工具还接受来自其他RDP客户端的连接…...
100天精通Python(可视化篇)——第106天:Pyecharts绘制多种炫酷桑基图参数说明+代码实战
文章目录 专栏导读一、桑基图介绍1. 桑基图是什么?2. 桑基图应用场景?二、桑基图配置选项1. 导包2. add函数3. 分层设置三、桑基图基础1. 普通桑基图2. 修改标签位置3. 修改节点布局方向4、月度开支桑基图书籍推荐专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就…...
什么是OTP认证?OTP认证服务器有哪些应用场景?
OTP是一次性密码,即只能使用一次的密码。它基于专门的算法,每隔60秒生成一个不可预测的随机数字组合。这种密码的有效期仅在一次会话或交易过程中,因此不容易受到重放攻击。在计算器系统或其他数字设备上,OTP是一种只能使用一次的…...
shell_73.Linux使用新 shell 启动脚本
每次启动新 shell,bash shell 都会运行.bashrc 文件。①对此进行验证,可以使用这种方法:在 主目录下的.bashrc 文件中加入一条简单的 echo 语句,然后启动一个新 shell。 $ cat $HOME/.bashrc # .bashrc # Source global definiti…...
【领域驱动设计】聚合
从战术设计上,DDD 最值得借鉴的就是聚合根 什么是聚合 将实体和值对象在一致性边界之内组合聚合 这里的一致性包括 1、业务概念的完整性 2、业务规则的一致性:多个实体需要在一次操作中保持某种一致性(修改 A,同步必须修改 B&a…...
WiFi模块在智能家居中的应用与优化
智能家居技术的迅速发展已经改变了我们对家庭的定义。WiFi模块作为智能设备连接的核心,扮演着连接和控制智能家居生态系统的关键角色。本文将深入研究WiFi模块在智能家居中的应用,同时探讨如何通过优化来提升其性能和用户体验。 1. 智能家居中WiFi模块的…...
LeetCode75——Day27
文章目录 一、题目二、题解 一、题目 933. Number of Recent Calls You have a RecentCounter class which counts the number of recent requests within a certain time frame. Implement the RecentCounter class: RecentCounter() Initializes the counter with zero r…...
P6462补刀
灵光一现,突然就做出来了 正好写一下思路过程 一开始寻思是个数论的问题,貌似需要用到扩展欧几里得,不管那么多,直接写上,接着不断缝缝补补修修改改,此处省略一小时.... 做不出来....好难受 星期天,无聊,做个题.. 突然,不对啊 这个题实际上不就是我当前打还是不打的一个选…...
Python教程---Python交互界面
当我们通过命令行来输入Python,所进入到的界面就是Python的交互界面 结构: 版本和版权声明: Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright"…...
基于计算机视觉的身份证识别系统 计算机竞赛
0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-sen…...
[python] logging输出到控制台(标准输出)
要将logging.info输出到控制台(标准输出),可以使用以下代码: import logging# 创建一个logger对象 logger logging.getLogger(__name__)# 创建一个控制台处理器 console_handler logging.StreamHandler()# 设置控制台处理器的输…...
uniapp 离线打包 google 登录
官方文档: Oauth 模块 | uni小程序SDK 其中有 clientid 和反向url clientid 是 xxxx.apps.googleusercontent.com 反向url 是 com.googleusercontent.apps.xxx...
【实战Flask API项目指南】之一 概述
实战Flask API项目指南之 概述 本系列文章将带你深入探索实战Flask API项目指南,通过跟随小菜的学习之旅,你将逐步掌握Flask在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧! 前言 小菜是一个Python编程爱好者,他目前…...
AD面试总结
文章目录 CK的面试1.自我介绍2.学习动机3.一天花多久时间4.兴趣爱好5.sql5.1 第二周那道题5.2 对时间盲注和布尔盲注的简单介绍5.3 盲注中可以替代sleep的替代函数 6.反序列化6.1 列举几个函数的触发时机6.2 __wakeup绕过的多种方法6.3 GC垃圾回收机制 7.死亡exit8.mysql8.1.练…...
从今年最硬科幻游戏中的思考
前言 最近有一款“完蛋,我被美女包围了”游戏火爆了,steam上一度达到排行榜第一最低也能到第八(销量据说到了100万份),接下来分享一下自己对于这一款游戏的思考,如果有其他想法,随时可以联系沟…...
ide-eval-resetter:JetBrains IDE试用期管理工具技术指南
ide-eval-resetter:JetBrains IDE试用期管理工具技术指南 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter JetBrains系列IDE为开发者提供了强大的开发环境,但30天试用期限制常成为持续开发的…...
经典软件优化:魔兽争霸III的现代设备适配解决方案
经典软件优化:魔兽争霸III的现代设备适配解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 当经典游戏遇上现代硬件,往往…...
学术研究助手:OpenClaw+Qwen3.5-9B-AWQ-4bit自动解析论文图表
学术研究助手:OpenClawQwen3.5-9B-AWQ-4bit自动解析论文图表 1. 为什么需要自动化论文图表解析? 去年冬天,当我面对堆积如山的文献PDF时,突然意识到一个残酷事实:科研工作者80%的时间都消耗在重复性劳动上。最典型的…...
实测ERNIE-4.5-0.3B-PT:vLLM部署+Chainlit前端,开箱即用的文本生成体验
实测ERNIE-4.5-0.3B-PT:vLLM部署Chainlit前端,开箱即用的文本生成体验 1. 快速部署ERNIE-4.5-0.3B-PT模型 1.1 环境准备与模型部署 ERNIE-4.5-0.3B-PT是基于PaddlePaddle框架的轻量级文本生成模型,通过vLLM进行高效部署。部署过程非常简单…...
Qwen3.5-2B轻量化设计原理:MoE稀疏激活+动态token压缩技术详解
Qwen3.5-2B轻量化设计原理:MoE稀疏激活动态token压缩技术详解 1. 模型概述 Qwen3.5-2B是Qwen3.5系列中的轻量化多模态基础模型,专为低功耗、低门槛部署场景设计。该模型采用20亿参数规模,在保持良好性能的同时显著降低了资源占用࿰…...
Local SDXL-Turbo新手入门:一键部署,实时创作赛博朋克世界
Local SDXL-Turbo新手入门:一键部署,实时创作赛博朋克世界 【一键部署镜像】Local SDXL-Turbo 基于StabilityAI SDXL-Turbo的毫秒级实时绘画工具 支持流式提示词编辑、所见即所得构图、512512高清输出 1. 为什么选择Local SDXL-Turbo? 传统…...
Z-Image-Turbo_Sugar脸部Lora效果对比:Euler a vs DPM++ 2M SDE生成质量评测
Z-Image-Turbo_Sugar脸部Lora效果对比:Euler a vs DPM 2M SDE生成质量评测 1. 模型介绍与部署准备 Z-Image-Turbo_Sugar脸部Lora是一个专门针对甜美风格人像生成的AI模型,基于Z-Image-Turbo的Lora版本进行优化。这个模型特别擅长生成具有"纯欲甜妹…...
Qwen3.5-9B算法学习伙伴:LeetCode解题思路分析与代码实现
Qwen3.5-9B算法学习伙伴:LeetCode解题思路分析与代码实现 1. 为什么需要AI算法学习伙伴 刷LeetCode是每个程序员提升算法能力的必经之路,但独自面对难题时常常陷入困境。你可能遇到过这些情况:盯着题目半小时毫无头绪、写出的代码总是超时、…...
从安装到第一个Cypher查询:用Docker一键部署Neo4j 5社区版,告别环境冲突
容器化部署Neo4j 5社区版:告别环境冲突的极简实践 在数据科学和复杂关系分析领域,Neo4j作为领先的图数据库解决方案,正被越来越多的企业采用。然而,传统安装方式常伴随着Java版本冲突、环境变量污染等问题,让开发者头…...
神经结构搜索(NAS)编码策略解析:从邻接矩阵到路径优化的实战指南
1. 神经结构搜索(NAS)编码策略入门指南 第一次接触神经结构搜索(NAS)时,我被那些晦涩的术语搞得一头雾水。直到在真实项目中踩过几次坑才明白,编码策略的选择直接影响着整个搜索过程的效率。简单来说,NAS编码就像给神经网络结构设计"身份…...
