Codeforces Round #693 (Div. 3) B
https://codeforces.com/contest/1472/problem/B
重点:
如果总和是偶数,并且至少有两个糖果的重量为1(不可能有一个糖果),然后答案总是“是”(我们可以收集重量尽可能接近一半的重量与重量2,然后增加重量1)。
如果没有重量为1的糖果,则需要检查n是否为偶数(因为所有糖果的重量都相同,所以只需将它们分成两半即可)。
#include <iostream> using namespace std; int main() { int t; cin>>t; while (t--) { int n; cin>>n; int sum1=0; int sum2=0; int sum=0; for(int i=0;i<n;i++) { int tmp; cin>>tmp; sum+=tmp; if(tmp==1) sum1++; else if(tmp==2) sum2++; } if(sum1>=2&&sum%2==0) cout<<"yes"<<endl; else if(n%2==0&&sum1==0)//没有质量为1的糖果,且次数为偶数 cout<<"yes"<<endl; else cout<<"no"<<endl; } return 0; }

浙公网安备 33010602011771号