当前位置: 首页 > news >正文

模拟赛 c7-A xor

题目描述

蜗蜗有 个密码盒,每个密码盒上原本写着⼀个⾮负整数。第 个密码盒上的数字是 。 另有 张标签,每张标签上也写着⼀个⾮负整数,标签上的数字分别是 。蜗蜗可以任意重新排列这些标签,然 后把它们⼀⼀贴到密码盒上。 蜗蜗想找⼀个⾮负整数 ,使得可以通过某种贴标签⽅式,让每个密码盒都满⾜:

\(a_i\) \(xor\) \(b_i = x\)

这⾥\(xor\)表示按位异或。注意,重新排列标签后,式⼦中的 表示贴到第 个密码盒上的标签数字。 请你找出所有可能的 ,并按从⼩到⼤的顺序输出。

输入格式

第⼀⾏输⼊⼀个整数\(N\)

第⼆⾏输⼊\(N\)个整数 \(a_i\)

第三⾏输⼊\(N\)个整数 \(b_i\)

输出格式

第⼀⾏输出⼀个整数\(K\),表示合法的\(x\)的个数。

接下来\(K\)⾏,每⾏输出⼀个合法的\(x\)

合法的\(x\)必须按从⼩到⼤的顺序输出。

样例输⼊1

2

0 1

0 1

样例输出1

2

0

1

样例输⼊2

3

0 1 2

0 1 4

样例输出2

0

样例解释

对于样例1:

\(x=0\)时,可以保持标签顺序不变,此时 ,\(0\) \(xor\) \(0 = 0\)\(1\) \(xor\) \(1 = 0\)

\(x=1\)时,可以交换两张标签,此时 ,\(0\) \(xor\) \(1 = 1\)\(1\) \(xor\) \(0 = 1\) 。 所以⼀共有\(2\)个合法的\(x\),分别是\(0\)\(1\)

对于样例2: ⽆论怎样重新排列标签,都⽆法让所有密码盒异或标签后的结果相同,所以合法的\(x\)个数为\(0\)

数据范围

对于100%的数据,保证 \(1≤N≤2000\) , \(0≤A_i,B_i<2^{30}。\)

算法分析

首先暴力可以得出:用双重循环枚举每一个可能的\(x\),依次check,时间复杂度\(O(n^3logn)\),会TLE。所以考虑优化,不难想到,因为所有可能的\(x\),都在\(A_1\) \(xor\) \(B_1,B_2,...,B_n\)中,所以只要枚举前面那个式子就可以了,时间复杂度优化成了\(O(n^2logn)\),可以通过此题。

AC代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
int mx = 0;
ll a[2005];
ll b[2005];
set<ll> st;
vector<int> c;
vector<int> d;
bool check(ll x){c.clear();//清空数组for(int i = 1; i<=n; i++){ll t = x^b[i];//算异或值c.push_back(t);}sort(c.begin(),c.end());//排序后才能比较if(c==d){//判等return true;}else{return false;}
}
int main(){//freopen("xor.in","r",stdin);//freopen("xor.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(int i = 1; i<=n; i++){cin>>a[i];}for(int i = 1; i<=n; i++){cin>>b[i];}sort(a+1,a+1+n);//排序for(int i = 1; i<=n; i++){d.push_back(a[i]);//放入vector}for(int i = 1; i<=n; i++){ll t = a[1]^b[i];//枚举每一个可能的xif(check(t)){//判断st.insert(t);//如果可以,放入set}}cout<<st.size()<<'\n';//输出个数for(auto i = st.begin(); i!=st.end(); i++){cout<<*i<<'\n';//从小到大输出}return 0;
}

总结

思路不难想,代码也不难写,可以评个橙题。

http://www.jsqmd.com/news/1407580/

相关文章:

  • Windows批处理脚本:一键批量创建结构化文件夹的自动化方案
  • KKCE: 基于网站测速的WebRTC信令与ICE穿透延迟诊断-快快测
  • HAR文件全解析:从HTTP存档到网络调试与性能分析实战
  • WebSocket协议实战:构建AI工具与MCP Server的稳定通信桥梁
  • shuohao-skills:把一本小说变成短剧拍片的素材
  • Ubuntu网卡驱动缺失应急指南:手机USB共享网络与驱动安装全流程
  • TVA具身智能技术图谱(25):跨越虚实鸿沟自校正机制
  • 告别U盘:Win10/Win11局域网共享文件夹设置与排错全攻略
  • 8月16号实习一个月总结
  • VBA学习实操第6弹:变量、常量与数组
  • Java 修饰符终极指南:从 public 到 volatile,一文掌握 12 种修饰符的底层原理
  • 2026 高透明耐高温 PC 现货,重庆鸿善诚天华天岚牌稳定供货 - 天下观知
  • 玄奘路戈壁徒步:108公里,一场与自己的千年之约
  • 君去君归君勿忘,我来我见我征服
  • Docker Compose安装指南:二进制与pip方式详解及避坑实践
  • Alist部署与网盘挂载实战:从Docker配置到性能优化的完整指南
  • 论文AI率超标别焦虑?2026年5款免费AIGC降重工具:高效降AI率,亲测知网/维普全绿过 - 降AI实验室
  • Wireshark安装与抓包实战:从零掌握网络流量分析
  • AI心理健康助手1
  • 2026长春市单招班推荐 高职单招备考选报实用指南 - 爱说大实话121
  • 构建AI Agent技能持续调优工程链路:从数据驱动到闭环优化
  • 在 Python 中,`and` 是逻辑运算符,返回的是布尔值 `True` 或 `False`(不是整数 1 或 0)
  • CAN 总线学习笔记:从物理层、报文帧到波形诊断的新人通用入门
  • Kimi-Code规划与目标模式:从AI建议到自动化执行的范式跃迁
  • KKCE: 基于网站测速的平台,全球300+节点-快快测
  • java学习第26课
  • 锐捷交换机SNMP与密码安全配置:从明文泄露到深度加固实战
  • 深入掌握seq命令:从数字序列生成到Linux运维实战应用
  • 论文AI率超标别发愁?2026年实测10款降AI率、去AI痕迹工具网站 - 降AI实验室
  • HiDef N-2神经培养基补充剂:面向iPSC神经分化与神经类器官的Defined培养体系