为什么就AC了第二个测试点呢,真得感觉很对orz
查看原帖
为什么就AC了第二个测试点呢,真得感觉很对orz
990881
VOLCANOHERE楼主2023/7/17 18:35
#include<bits/stdc++.h>
using namespace std; 
int n;
long long x;
long long popcount1(long long u)
{//popcount
u = (u & 0x55555555) + ((u >> 1) & 0x55555555);
u = (u & 0x33333333) + ((u >> 2) & 0x33333333);
u = (u & 0x0F0F0F0F) + ((u >> 4) & 0x0F0F0F0F);
u = (u & 0x00FF00FF) + ((u >> 8) & 0x00FF00FF);
u = (u & 0x0000FFFF) + ((u >> 16) & 0x0000FFFF);
return u;
}
long long lowbit(long long x) {//lowbit
	return x & (-x);
}
void getin() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> x;
		if (popcount1(x) == 1) { cout << x + 1 << endl; }
		else if (popcount1(x) == 2) { cout << x + lowbit(x) << endl; }
		else { cout << "No, Commander" << endl;; }
	}
}
int main() {
	getin();
	return 0;
}

2023/7/17 18:35
加载中...