题目:
问题 - I - 代码强制 (codeforces.com)https://codeforces.com/gym/103495/problem/I题意:
- 就是给了m,n,从0到2^m-1挑出一个集合,保证异或运算等于n,然后输出这个集合最大元素值。
题解:
- 异或运算我也不是很明白,所以我也是直接看的官方题解,然后大概写了一下代码(千万要认真读题,题目读错了,耽误了好久)
代码如下:
#include<iostream>
#include <cmath>
using namespace std;
int t;
long long ans = 0;//注意该数据非常大,需要用long long
int main()
{
cin >> t;
while (t--)
{
long long n, m;
cin >> n >> m;
if (n == 1)
{
if (m == 1) {
cout << 2 << endl;
}
else {
cout << 1 << endl;
}
}
else
{
if (m!=0) {
ans = pow(2, n) - 1;
cout << ans << endl;
}
else {
ans = pow(2, n);
cout << ans << endl;
}
}
}
}