本文主要是介绍Educational Codeforces Round 71 (Rated for Div. 2) E XOR Guessing(思维),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:https://codeforces.com/contest/1207/problem/E
题目大意:交互题,一共可以问两次,每次问100个数字,然后会返回一个这一百个数字中随机一个和答案异或的值,要求输出答案。,并且要求这200个数字不重复
题目思路:以为是个王者,结果是个青铜,TMD...想复杂了,看到题解差点喷血,这个题为啥rating1800啊???好吧我没写出来就是没写出来我就是弟弟
直接上来莽一发1~100(想到了这个但是没想到怎么用啊啊啊啊啊啊),然后发现100转换成2进制一共7位(这个也干了啊咋就没想到啊啊啊啊啊啊),所以无论被抽到哪个家伙跟答案异或,8~14位一定是答案的14位,毕竟1~100的这几位都是0,然后如法炮制,保住后7位是0,前7位就出来了,然后这题就结束了...当事人非常痛苦
以下是代码:
#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
const int MAXN = 1e5+5;
const int MOD = 998244353;int main(){int ans=0,x;printf("? ");rep(i,1,100){printf("%d%c",i,i==100?'\n':' ');}fflush(stdout);scanf("%d",&x);rep(i,7,14){ans|=((1<<i)&x);}printf("? ");rep(i,1,100){printf("%d%c",i<<7,i==100?'\n':' ');}fflush(stdout);scanf("%d",&x);rep(i,0,6){ans|=((1<<i)&x);}printf("! %d\n",ans);fflush(stdout);return 0;
}
这篇关于Educational Codeforces Round 71 (Rated for Div. 2) E XOR Guessing(思维)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!