piyuhan666 @ 2024-11-28 21:00:32
#include<bits/stdc++.h>
using namespace std;
int t;
struct no{
int n;
string a;
}s[110];
int b[10010];
int main(){
cin>>t;
for(int i=1;i<=t;i++){
cin>>s[i].n;
for(int j=1;j<=s[i].n;j++){
cin>>s[i].a[j];
b[i]=s[i].a[j];
}
bool f=0;//判断
for(int k=1;k<=s[i].n-1;k++){//循环i的位置
int sum=0,ans=0;//平衡两边的和
for(int h=1;h<=k;h++){//一到i的和
sum+=b[h];
}
for(int y=k+1;y<=s[i].n;y++){//i+1到最后的和
ans+=b[y];
}
//cout<<sum<<" "<<ans<<endl;
if(sum==ans){
f=1;
break;
}
else{
f=0;
}
}
if(f==0){
cout<<"No"<<endl;
}
else{
cout<<"Yes"<<endl;
}
}
return 0;
}
by ddlove2014 @ 2024-11-29 05:40:50
//代码送你了,看到了回复
#include <bits/stdc++.h>
using namespace std;
int sum[10005];
int main()
{
int t;
cin >> t;
while(t--)
{
int n;
cin >> n;
memset(sum, 0, sizeof sum);
for(int i = 1; i <= n; i++)
{
int x;
cin >> x;
sum[i] = sum[i - 1] + x; //计算数据从1 ~ i的和
}
if(sum[n] % 2 == 1) cout << "No"; //sum[n]为奇数,无法平分2份
else
{
bool flag = 0;
for(int i = 1; i <= n; i++)
{
if(sum[i] == sum[n] / 2) // 是否有和为sum[n]/2的项 {
flag = 1; //后续输出Yes
break;
}
}
if(flag) cout << "Yes";
else cout << "No";
}
cout << endl;
}
}
@piyuhan666