P13685 【MX-X16-T3】「DLESS-3」XOR and Impossible Problem
dzy15373891653 · · 题解
这道题看楼下的大佬,不太明白推出来的公式,我就发一篇用暴力水过去的题解吧,首先,我们注意到它是要求累乘和,我们先暴力枚举一下,发现时间复杂度是远远大于题目要求的,我们再想怎么优化,很显然,累乘和,只要有一个数是零,那么乘出来的答案一定是零,这时候直接跳出循环就可以了。
下面附上本蒟蒻的代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
unsigned long long n,t,ans = 1,a[N];
const unsigned long long mod = pow (2,64);
int main () {
cin >> t;
while (t --) {
cin >> n;
for (int i = 1;i <= n;i ++) cin >> a[i];
for (int i = 1;i <= n;i ++) {//暴力枚举
for (int j = i + 1;j <= n;j ++) {
ans = ((ans % mod) * ((a[i] ^ a[j]) % mod)) % mod;
if (ans == 0) break;//当答案是零的时候直接退出循环,输出答案
}
if (ans == 0) break;
}
cout << ans % mod << '\n';//别忘了取余
ans = 1;//答案初始化为一,不然乘出来的答案就都是零了。
}
return 0;
}