首页 > 其他分享 >CF1207E XOR Guessing

CF1207E XOR Guessing

时间:2024-09-25 20:04:31浏览次数:7  
标签:Guessing XOR cout 询问 times CF1207E 100 oplus

思路

设答案为 \(a\),第一次异或的数为 \(b\),第二次异或的数为 \(c\),则可以通过两次询问知道 \(a \oplus b\) 和 \(a\oplus c\),所以 \(b\oplus c = (a \oplus b) \oplus (a\oplus c)\)。

因为范围为 \([0,2^{14}-1]\),且每次询问只有 \(100\) 次,所以可以让第一次询问 \(\{1,2,\cdots,100\}\),第二次询问 \(\{1\times 2^7,2\times 2^7,\cdots,100\times 2^7\}\),这样 \(b\) 只会影响 \(b\oplus c\) 的前 \(7\) 位,\(c\) 只会影响 \(b\oplus c\) 的后 \(7\) 位,进而可以通过分解 \(b\oplus c\) 推出 \(b,c\),通过 \((a\oplus b)\oplus b\) 或 \((a\oplus c)\oplus c\) 得到 \(a\)。

代码

#include <bits/stdc++.h>
using namespace std;
int x1,x2,c1,c2;
signed main() {
	cout<<"? ";
	for(int i=1;i<=100;i++)
		cout<<i<<" ";
	cout<<endl;
	cin>>x1;
	cout<<"? ";
	for(int i=1;i<=100;i++)
		cout<<(i<<7)<<" ";
	cout<<endl;
	cin>>x2;
	cout<<"! "<<(x2^(((x1^x2)>>7)<<7))<<endl;
	return 0;
}

标签:Guessing,XOR,cout,询问,times,CF1207E,100,oplus
From: https://www.cnblogs.com/WuMin4/p/18432073

相关文章

  • XOR 加密简介
    XOR加密简介作者: 阮一峰日期: 2017年5月31日本文介绍一种简单高效、非常安全的加密方法:XOR加密。一、XOR运算逻辑运算之中,除了 AND 和 OR,还有一种 XOR 运算,中文称为"异或运算"。它的定义是:两个值相同时,返回false,否则返回true。也就是说,XOR可以用来判断两个值......
  • CF1446C Xor Tree
    很有意思的题目,我们考虑能连边的两个数一定是在01-Trie上距离最近的两个点。于是我们先把所有数插入到01-Trie上去,然后\(dp_u\)考虑以\(u\)为根的子树中最多能留几个数,他的两个儿子内部的点只能在内部转移,你只能取一个儿子和另一个儿子的一个,也就是说我们的转移为\(dp_u......
  • 题解:CF888G Xor-MST
    题解:CF888GXor-MST题目大意:给定\(n\)个点的点权,任意两点间边权是点权的异或和。求这张完全图的MST的权值。思路:Boruvka+Trie树+按位贪心。关键就在于如何求出Boruvka中的best数组。考虑对点权建trie树,对于节点\(i\)本轮的连边,就是找“和它最相似”的那......
  • P2898 [USACO08JAN] Haybale Guessing G 题解
    并查集好题首先我们知道并查集是可以维护一个区间的覆盖问题的,具体操作就是,对于一个区间,我们让所有的点都有一个指针,这个指针指向这个区间的右端点+1(具体操作可以每个点指向右边,这样后面我们查到一个点的时候用路径压缩就可以了,能从\(\Theta(nlogn)\)变成\(\Theta(n)\)),这样我们......
  • P10471 最大异或对 The XOR Largest Pair(01trie)
    #include<bits/stdc++.h>usingnamespacestd;#definexfirst#defineysecondtypedefpair<int,int>PII;typedeflonglongll;typedefunsignedlonglongull;typedefunsignedintuint;typedefvector<string>VS;typedefvector<int>......
  • CF1993E Xor-Grid Problem
    结论,异或,状压DP2300Link:https://codeforces.com/problemset/problem/1993/E。先考虑一维的情况。若只有一维,每次操作的结果和[AGC016D]XORReplace是一样的。对\(a_i\)进行一次操作相当于令\(a_i:=\oplus_{1\lei\len}a_i\),再对\(j\)进行一次操作相当于令\(a_j:=......
  • [ABC367G] Sum of (XOR^K or 0)
    MyBlogs[ABC367G]Sumof(XOR^Kor0)考虑求出\(ans_i\)表示选了\(m\)的倍数个数,异或和是\(i\)的方案数再统计答案。先考虑\(m=1\)怎么做。相当于是\(ans_i=[x^i]\prod_j(x^0+x^{a_j})\),这里的乘法是异或卷积。如果直接xor-FWT复杂度不如暴力。令\(F_i(x)\)表......
  • 两幅图像间的逻辑操作,与、或、非、异或:bitwise_and( ) bitwise_or( ) bitwise_not( )
    学OpenCV===============================================================================================这里额外看了下使用mask的情形 ===============================================================================================代码1#include<iostre......
  • QxOrm环境搭建以及接口编写
    1.常用ORM库比较2.QxOrm库编译集成2.1.下载地址https://www.qxorm.com/qxorm_en/home.html2.2.编译2.2.1.源码下载2.2.2.cmake编译2.2.3.打开QxOrm工程编译VisualStudio2015(v140)版本库2.2.4.编译好的库生成目录3.注册3.1.注册类其中传入的模......
  • ABC366 G - XOR Neighbors 题解
    发现题目实质上就是让你构造一组\(a_{1,2,\dots,n}\),有一些限制,要求一些\(a\)异或起来是\(0\)。看到\(n\le60\),果断列异或方程组,用异或高斯消元。具体地,有\(n\)个方程组,\(a_{i,j}\)表示第\(i\)个方程中\(j\)的系数。对于每一个变量\(i\),要把\(j>i\)的方程中的第......