- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2025年信息奥赛选拔试题及答案
(满分300分,时长5小时,机试+纸质提交)
【考生注意】
1.语言限定:C++17,禁止__int128、bits/extc++.h等非标准扩展。
2.评测环境:Inteli7-12700K,32GB,Ubuntu22.04,GCC11,O2优化。
3.每题源文件命名与程序名一致,统一放入/home/ioi2025/选手编号/。
4.纸质提交部分须用黑色签字笔书写,字迹潦草视为无效。
5.开赛后30分钟可离场,结束前30分钟禁止离场。
—————————————机试部分(240分)—————————————
1.序列的量子跳跃(QuantumLeap)100分
【题目描述】
给定长度为n的整数序列A,下标1…n。定义一次量子跳跃为:
选择下标i∈[1,n?1],令A[i]与A[i+1]同时变为A[i]⊕A[i+1]。
求最少跳跃次数使得序列整体异或和为0。若不可能,输出?1。
【输入格式】
第一行n(2≤n≤2×10^5),第二行n个32位无符号整数。
【输出格式】
一行,最少次数或?1。
【样例输入】
5
35127
【样例输出】
2
【样例解释】
第一次选i=2,序列变为34427,异或和=2;
第二次选i=4,序列变为34405,异或和=0。
【答案与解析】
令S=⊕_{k=1..n}A[k]。若S=0,答案0。
否则,观察一次跳跃对S的影响:
新S′=S⊕A[i]⊕A[i+1]⊕(A[i]⊕A[i+1])⊕(A[i]⊕A[i+1])=S⊕(A[i]⊕A[i+1])。
即S′=S⊕x,其中x=A[i]⊕A[i+1]。
目标S′=0,等价于x=S。
因此,问题转化为:最少相邻异或操作,使得某次操作产生的x等于初始S。
由于操作可逆,且每次操作仅影响相邻两项,可将序列视为图,边权为A[i]⊕A[i+1]。
BFS求从任意边到S的最短路径即可。
时间复杂度O(n+2^32)显然不可行,注意到边权仅依赖相邻异或值,而n≤2e5,可用哈希表存储出现过的权值,BFS状态数不超过n。
具体实现:
1.预处理所有相邻异或值,存入哈希表并离散化;
2.建图,节点为离散化后的权值,边为“一次跳跃可转移到的权值”;
3.从初始S出发,BFS求最短路径。
若S=0输出0;若S不在离散化表中输出?1;否则输出BFS结果。
核心代码:
```cpp
includebits/stdc++.h
usingnamespacestd;
usingu32=uint32_t;
intmain(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
intn;cinn;
vectoru32a(n+1);
u32S=0;
for(inti=1;i=n;i++){cina[i];S^=a[i];}
if(S==0){cout0;return0;}
unordered_mapu32,intid;inttot=0;
autoget=[](u32x){
if(!id.count(x))id[x]=tot++;
returnid[x];
};
vectorintadj[200005];
for(inti=1;in;i++){
u32x=a[i]^a[i+1];
intu=get(S^x),v=get(x);
adj[u].push_back(v);
}
if(!id.count(S)){cout-1;return0;}
intstart=id[S];
vectorintdis(tot,-1);
queueintq;q.push(start);dis[start]=0;
while(!q.empty()){
intu=q.front();q.pop();
for(intv:adj[u])if(dis[v]==-1){
dis[v]=dis[u]+1;
q.push(v);
}
}
intans=INT_MAX;
for(inti=0;itot;i++)if
您可能关注的文档
- 2025年护理资格知识谵妄理论考试试题及答案.docx
- 2025年机关事业单位工勤技能人员职业道德考试及答案.docx
- 2025年机械设计师职业资格《机械CADCAM技术》备考题库及答案解析.docx
- 2025年技术员考核练习卷及答案.docx
- 2025年教师资格考试高中信息技术学科知识与教学能力模拟试卷及答案.docx
- 2025年喀什地区市级机关公开遴选考试笔试试题(含答案).docx
- 2025年矿业工程地质勘探与经济考试试题及答案.docx
- 2025年汽车驾驶员(技师)考试题库及答案.docx
- 2025年事业单位工勤技能考试题库(含答案).docx
- 2025年卫生健康委员会事业单位人员招聘考试笔试试题(含答案).docx
- 2025年智能电网柔性直流输电技术在我国西部地区应用前景.docx
- 7.2 弹力-人教版八年级物理下册.pptx
- 2025年智能电网柔性直流输电技术在智能变电站中的应用研究.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化存储中的应用.docx
- 2025年智能电网柔性直流输电技术在新能源并网中的应用研究.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化控制中的应用.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化预测中的应用.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化服务中的应用.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化运维中的应用.docx
- 2025年智能电网柔性直流输电技术智能化保护系统研究.docx
原创力文档


文档评论(0)