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;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值