alt

题目描述如上图

题解如下:

因为|x −y| ≤ x ⊕ y,n ≤ |x −y| ≤ x ⊕y, 所以 x⊕y 的最小值是n。

由x,y的范围入手其实可以发现一点猫腻,我的x和y后面其实可以加许多个0,举个例子:

如果我的n为101011,我的x可以为101011000000(最多可以31个0),y就为101011101011,这样x⊕y的值为n,而此时的y的值其实就是x取2^k+1LL,这样既满足互质也满足异或为n,这是个很巧妙的方法,是看了雨巨姐姐的直播才明白的。这是一道思维构造题,AC码附下:

void solve() {
	int ky = 1LL << 31;
	int kx = ky + 1LL;
	int n;
	cin >> n;
	cout << n*kx << ' ' << n*ky << endl;
}

signed main() {
	//vector<vector<int>>a(n,vector<int>(m)); 二维构造
	//cout << fixed << setprecision(10);  固定小数输出
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	int T = 1;
	cin >> T;
	while (T--) solve();
	return 0;
}