题目链接:https://codeforces.com/problemset/problem/1915/C
这道题呢本身其实并不难,所以我配送了一个视频讲解
视频讲解(精细版):
AC代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;//记得这样写,一直写long long太麻烦了
const int N = 1e6 + 10;
ll a[N];
int main() {
ll T;
cin >> T;//多组数据
while (T--) {
ll N, sum = 0;//sum用于记录a[1]到a[n]加起来的值
cin >> N;
for (ll i = 1; i <= N; i++) {
cin >> a[i];
sum += a[i];//将a[1]到a[n]的值加起来
}
// cout << sum << endl;//这是我在调试的时候写的,具体见视频
ll tmp = sqrt(sum);//将sum分半
if (tmp * tmp == sum) /*判断是否可行,具体讲解见视频*/ {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
return 0;
}
//请不要抄袭,本代码只供参考
努力打C++,天天向上
加油👍