Educational Codeforces Round 71 (Rated for Div. 2)-E. XOR Guessing-交互题


【Problem Description】

​ 总共两次询问,每次询问给出\(100\)个不同的数,评测系统对于每次询问,随机从\(100\)个数中选择一个数\(a\),返回\(x\oplus a\)。让你通过两次返回的值猜出\(x\)值是多少。要求两次询问的\(200\)个数互不相同,且题目保证\(x\)值固定不变。

【Solution】

​ 题目要求所有询问数据,即\(x\)的值在\([0,2^{14}-1]\)范围内,且只能询问两次,根据异或的性质,\(0\)异或任何数都不改变。所以可以分两次得到答案,即第一次先确定\(x\)二进制中的高\(7\)位,也就是第一次询问时,所有询问的数的高\(7\)位全为\(0\),这样保证评测系统选任何数异或后返回的值的高\(7\)位一定与\(x\)的高\(7\)位相同,同理,第二次只要保证所有询问的数的低\(7\)位全为\(0\),最终将两次得到的值合并即可。


【Code】

/*
* @Author: Simon
* @Date: 2019-08-27 20:36:36
* @Last Modified by: Simon
* @Last Modified time: 2019-08-27 21:57:17
*/
#include<bits/stdc++.h>
using namespace std;
typedef int Int;
#define int long long
#define INF 0x3f3f3f3f
#define maxn 200005
int a[maxn];
Int main(){
#ifndef ONLINE_JUDGE
//freopen("input.in","r",stdin);
//freopen("output.out","w",stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(0);
cout<<"? ";
for(int i=1;i<=100;i++) cout<<i<<" "; //第一次保证高7位为0
cout<<endl;
int ans;cin>>ans;
ans|=127; //低7位全置1
cout<<"? ";
for(int i=1;i<=100;i++) cout<<(i<<7)<<' ';//第二次保证低7为0
cout<<endl;
int tmp;cin>>tmp;
(ans&=(tmp|(127<<7))); //合并第二次的低7位
cout<<"! "<<ans<<endl;
#ifndef ONLINE_JUDGE
cout<<endl;system("pause");
#endif
return 0;
}

最新文章

  1. 【Beta】团队协作模式探讨试行
  2. [Java Web整合开发王者归来&#183;刘京华] 2、 Java Web开发概述
  3. easyui源码翻译1.32--SearchBox(搜索框)
  4. web项目环境搭建(1):建立一个maven项目
  5. php ajax提交数据 在本地可以执行,而在服务器不能执行
  6. WP8.1程序开发,可视树VisualTreeHelper类的使用
  7. python遍历一个目录,输出所有文件名
  8. [extjs5学习笔记]第三十七节 Extjs6预览版都有神马新东西
  9. pt-align
  10. 【AGC030D】Inversion Sum DP
  11. Kafka.net使用编程入门(二)
  12. 前端常见算法面试题之 - 二维数组中的查找[JavaScript解法]
  13. windows下修改memcached服务的端口号
  14. 树莓派命令行配置连接wifi
  15. [OI向?] ubuntu下一些常用的技巧
  16. 系统可能不会保存你所做的修改 onbeforeunload
  17. XML外部实体(XXE)注入详解
  18. bnu 10783 格斗游戏 线段与圆的关系
  19. [笔记] 几个前端bug的解决方案
  20. leetcode有意思的题目总结

热门文章

  1. 非LODOP的打印其他问题-简短问答
  2. (转)在高分辨率下eclipse,STS,等软件工具栏图标过小的问题方法总结
  3. 查看端口被哪个程序占用的DOS命令
  4. sql查询出现1055 this is incompatible with sql_mode=only_full_group_by
  5. 【计算机网络基础】URI、URN和URL的区别
  6. python学习-68 反射
  7. centos7编译安装memcached
  8. Scratch编程:打猎(十)
  9. 牛客挑战赛33 B-鸽天的放鸽序列
  10. app后端设计(php)