@PaulGuan
2016-10-02T19:21:57.000000Z
字数 477
阅读 670
第一学期第四周
题解
有n (1<=n<=100) 堆饼干,每堆饼干各有ai (1<=ai<=100) 个,拿走其中一堆,求解有多少种拿法使剩下的饼干数为偶数。
本题ai范围较小,可以用计数数组进行存放,然后依次假设被取走,进行判断便可。
#include <iostream>
#include <algorithm>
#include <cstring>
int n;
int flag[105];
int ans=0;
using namespace std;
int main(void)
{
memset(flag,0,sizeof(flag));
cin>>n;
int i,j;
for(i=0;i<n;i++)
{
int a;
cin>>a;
flag[a]++;
}
for(i=1;i<=100;i++)
{
if(flag[i])
{
flag[i]--;
int sum=0;
for(j=1;j<=100;j++)
{
sum+=j*flag[j];
}
if(sum%2==0)
ans+=flag[i]+1;
flag[i]++;
}
}
cout<<ans<<endl;
return 0;
}