【题解】CF1207E XOR Guessing
2024-08-27 00:57:43
这是一道交互题。
\(\text{Solution:}\)
观察到猜的数范围只有\(2^{14}.\)
我第一次想到的方法是,我们可以确定系统选择的两个数的异或和,用这个异或和去穷举所有目标数,如果有符合条件的就输出。
但是,这样是无法唯一确定答案的。因为选择数是随机的,所以如果这样没梦想的去做,是无法唯一确定的。
换一种思路:因为它的二进制位只有\(14\)位,我们可以把它分成两个部分,一部分前七位都是\(0\),另一部分后七位位\(0\)。于是每一次询问,我们可以确定它的前七位和后七位。
答案就这样唯一确定了。
注意,\(endl\)自带\(fflush.\)所以代码里面没有写。
#include<bits/stdc++.h>
using namespace std;
int a[200],b[200],A,B;
int ans[200],res;
int main(){
for(int i=1;i<=100;++i){
a[i]=i;
b[i]=i<<7;
}
cout<<"? ";
for(int i=1;i<=100;++i)cout<<a[i]<<" ";
cout<<endl;
cin>>A;
//for(int i=101;i<=200;++i)b[i-100]=i;
cout<<"? ";
for(int i=1;i<=100;++i)cout<<b[i]<<" ";
cout<<endl;
cin>>B;
res|=((A&(((1<<7)-1))<<7));
res|=(B&((1<<7)-1));
cout<<"! "<<res<<endl;
return 0;
}
最新文章
- 利用jsp和servlet,MySQL实现简易报表
- 封装了get post方法
- hdu------2488Tornado(几何)
- min_free_kbytes
- 关于cocoapods添加静态库的奇葩配置
- php数组使用小结
- DirectShow VS2013 控制台下捕捉摄像头而且显示
- ViewRootImpl和WindowManagerService笔记
- Easyui表单验证扩展
- Struts2+Spring+Hibernate3整合
- 在vscode中使用eslint+prettier格式化vue项目代码 (转载)
- 使用后台线程BackgroundWorker处理任务的总结
- python模块-----pymysql
- python成功之道
- 4.翻译系列:EF 6 Code-First默认约定(EF 6 Code-First系列)
- 微信小程序开发——设置默认图片、错误加载图片
- JavaScript 继承——三种继承方法及其优劣
- MyEclipse快捷键大全【转】
- 第2课 C 到 C++ 的升级
- KVM虚拟机IO处理过程(二) ----QEMU/KVM I/O 处理过程