0
点赞
收藏
分享

微信扫一扫

2021江苏大学生编程大赛I题(省赛试水)

分湖芝蘭 2022-05-01 阅读 53

题目: 

问题 - I - 代码强制 (codeforces.com)icon-default.png?t=M3K6https://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;
			}
		}
	}
}
举报

相关推荐

0 条评论