CF1451E2 Bitwise Queries (Hard Version)

题意:

有 \(n\) 个数( \(n\le 2^{16}\) ,且为 \(2\) 的整数次幂,且每一个数都属于区间 \([0,n-1]\) ) 可以通过询问交互库不超过 \(n+1\) 次询问,每次询问编号为 \(i,j\) ( \(1\le i,j \le n\) ,\(i\ne j\) ) 的 XORORAND ,求出这 \(n\) 个数 。

题解:

分类讨论,先对 \(2-n\) 这 \(n-1\) 个数每个数都与 \(1\) 询问一次 XOR ,之后考虑 \(2\) 次求出 \(a_1\) 。

  • 所有数都互不相同

    此时所有 \(xor\) 值都不相同且都不等于 \(0\) ,可以分别找出 \(xor_i=1\) 与 \(xor_j=n-2\) 的数,用 \(1\) 一次 \(and\) 询问求出 \(a_1\) 的前 \(m\) 位与最后一位 。

  • 有些数相同

    那些数的 \(xor\) 值相同 。

    • 有些数与 \(a_1\) 相同

      找出 \(xor_i=0\) 的数,与 \(1\) 询问 AND ,直接求出 \(a_1\) 。

    • 有些数相同,但不等于 \(a_1\)

      找出两个 \(xor\) 相同的数,用 \(1\) 次询问求出 \(a_i\) ,进而用之前询问求得的 \(xor_i\) 求出 \(a_1\) 。

代码:

#include<bits/stdc++.h>
using namespace std;
#define Maxn 65540
inline int rd()
{int x=0;char ch,t=0;while(!isdigit(ch = getchar())) t|=ch=='-';while(isdigit(ch)) x=x*10+(ch^48),ch=getchar();return x=t?-x:x;
}
int n,Xor[Maxn],ans[Maxn],vis[Maxn];
bool All=true;
inline int XOR(int x,int y)
{printf("XOR %d %d\n",x,y),fflush(stdout);return rd();
}
inline int AND(int x,int y)
{printf("AND %d %d\n",x,y),fflush(stdout);return rd();
}
int main()
{//freopen(".in","r",stdin);//freopen(".out","w",stdout);n=rd();for(int i=2;i<=n;i++){Xor[i]=XOR(1,i);if(vis[Xor[i]] || Xor[i]==0) All=0;vis[Xor[i]]=1;}if(All){for(int i=2;i<=n;i++){if(Xor[i]==1) ans[1]|=AND(1,i);if(Xor[i]==n-2) ans[1]|=AND(1,i);}}else{if(vis[0]){for(int i=2;i<=n;i++) if(!Xor[i]) { ans[1]=AND(1,i); break; }}else{for(int i=0;i<=n-1;i++) vis[i]=0;for(int i=2;i<=n;i++){if(vis[Xor[i]]) { ans[1]=Xor[i]^AND(vis[Xor[i]],i); break; }vis[Xor[i]]=i;}}}for(int i=2;i<=n;i++) ans[i]=ans[1]^Xor[i];printf("! ");for(int i=1;i<=n;i++) printf("%d%c",ans[i],(i==n)?'\n':' ');fflush(stdout);//fclose(stdin);//fclose(stdout);return 0;
}

【做题记录】CF1451E2 Bitwise Queries (Hard Version)相关推荐

  1. 2020.7月做题记录

    转眼就到了2020的下半年了-前方仍是一片茫然. 长期计划 prufer 序列 2020.07.02-2020.07.04 Problem Finished P2624 [HNOI2008]明明的烦恼 ...

  2. 概率期望题(期望 DP)做题记录

    概率期望题(期望 DP)做题记录 P3830 [SHOI2012]随机树 难点在于第二问:生成树的期望深度. 不 wei zhuo 捏,设 \(dp_{i,j}\) 表示已经有了 \(i\) 个叶子结 ...

  3. 数数题(计数类 DP)做题记录

    数数题(计数类 DP)做题记录 CF1657E Star MST 我们称张无向完全图是美丽的当且仅当:所有和 \(1\) 相连的边的边权之和等于这张完全图的最小生成树的边权之和. 完全图点数为 \(n ...

  4. CSDN 第六期编程竞赛做题记录

    CSDN 第六期编程竞赛做题记录 -- CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 9.18周日闲来无视写一下 csdn 的编程题,每期编程 ...

  5. 退役前的做题记录5.0

    退役前的做题记录5.0 出于某种原因新开了一篇. [CodeChef]Querying on a Grid 对序列建立分治结构,每次处理\((l,mid,r)\)时,以\(mid\)为源点建立最短路树 ...

  6. Regional 做题记录 (50/50)

    写在前面 博主深感自己太弱了QAQ 于是有了一个刷水的想法,Regional的题目还是有很多考查思维的题目,所以这次是乱做50道思考题,可能会顺带做一些水题,这些题的简要题解会写到这篇博文里面,希望能 ...

  7. 退役前的做题记录1.0

    退役前的做题记录1.0 租酥雨最近很懒qwq,具体表现在写题的时候不想发题解了. 但是想想这样也不太好,就决定发个一句话(半句话到几句话不等)题解上来. 2018-09.18-2018-09.28 [ ...

  8. 【Pikachu】漏洞练习平台做题记录+原理解析(2.2)XSS姿势和技巧

    前言 Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞. 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意. pikach ...

  9. 退役前的做题记录2.0

    退役前的做题记录2.0 最近在刷省选题......大致上是按照省份刷的. 不过上面的题目顺序是按照写题的顺序排列的,所以可能会有点乱哈. [BZOJ2823][AHOI2012]信号塔 最小圆覆盖,随 ...

最新文章

  1. VSS admin用户忘记密码的解决方法
  2. 在世界第二届半机械人奥运会上,瘫痪飞行员在Cybathlon BCI竞赛中争夺金牌
  3. CGContextRef学习笔记
  4. 计算机进位法,计算机基础知识--进位计数制.docx
  5. uni-app + vue-cli3 安装axios、vant等依赖 - 操作篇
  6. windows安装mysql-8.0.12-winx64和Navicat客户端连接(亲测有效)
  7. 使用alias简化命令输入
  8. 三菱melsec-a系列plc的指令与编程_三菱Q系列PLC定时器、计数器结构化编程基础
  9. 第六章 梯度下降法 学习笔记 上
  10. python批量图片自动编码
  11. 分治法——查找最大最小元素(C++)
  12. android adb 环境变量配置,Windows如何配置Android的ADB环境变量
  13. 基于python的论文前言怎么写_毕业论文前言怎么写
  14. Android 子线程更新UI
  15. poco mysql 登录_POCO数据库操作简介
  16. 漫画:用木兰从军说外观模式
  17. 推荐10款效率可以翻倍的IDEA插件,撸码利器
  18. OPENSTACK-210-3-配置网络(Configure networking)-命令行
  19. net core mysql开源框架_.NetCore开源集成框架
  20. pytorch Vgg网络模型

热门文章

  1. java实现红包要多少钱_Java实现抢红包算法,附完整代码(公平版和手速版)
  2. jsp需要多少java基础_Java基础——JSP(一)
  3. jbl css-h15,JBL CSS8006BM 天花音箱
  4. netcore读取json文件_【NET Core】.NET Core中读取json配置文件
  5. java语言怎样判断文件夹_JAVA语言之如何判断文件,判断文件夹是否存在的代码...
  6. linux显示内存状态,Linux显示内存状态
  7. java 非法操作异常_java – 空结果集上的非法操作
  8. 7-5 流水作业调度 (10 分)(思路+详解+johnson解析)Come Baby!!!!!!!!!!
  9. [SpringSecurity]web权限方案_用户认证_设置用户名密码
  10. Subset POJ - 3977(折半枚举+二分+二进制枚举)