水题,统计一共多少个奇数(odd),集合就至少有多少个元素,然后每个奇数减一变成偶数,累加一共多少偶数(2m),再特判odd是不是0个,是就输出2m,否则就是m/odd×2+1。
#include<bits/stdc++.h>
#define LL long long
#define maxn 110000
using namespace std;
int arr[maxn];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
int odd=0;
int m=0;
for(int i=0;i<n;++i)
{
scanf("%d",&arr[i]);
if(arr[i]&1)
{
odd++;
arr[i]-=1;
}
m+=(arr[i]>>1);
}
if(!odd)
printf("%d\n",m<<1);
else
printf("%d\n",m/odd*2+1);
}
}