CF1207E XOR Guessing

1207E XOR Guessing

Note

  • 什么是交互题

自己给出一段输出,判题机接受到这个输出,给你的输出返回一个结果,你再根据这个结果返回一个答案,判题机会检验答案的正确性

题目给出两次询问,每次问100个数字,然后会返回一个这一百个数字中随机一个和答案异或的值,要求输出答案,并且要求这200个数字不重复。

image-20201023205537751
Code

#include <bits/stdc++.h>

using namespace std;
#define ll long long
#define mod 1000000007
const ll maxn = 2e6 + 7;

int main() {
    //总共范围最大是14位二进制
    cout << "? ";
    for (long long i = 1; i <= 100; ++i) {//1-100的二进制的前七位都是0
        cout << i << ' ';
    }
    int res1;
    cin >> res1;
    cout << endl << "? ";
    for (long long i = 1; i <= 100; ++i) {//128-12800的二进制的后七位都是0
        cout << (i << 7) << ' ';
    }
    cout << endl;
    int res2;
    //这样在返回的结果中,前七位一定是答案的前七位,后七位一定是答案的后七位。
    cin >> res2;
    ll ans = 0;
    ans |= (res1 & ((1 << 7) - 1) << 7);
    ans |= (res2 & ((1 << 7) - 1));
    cout << "! " << ans << endl;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值