#include <iostream>
#include <algorithm>
using namespace std;
// 题意 给出每个字符数量 求这些 把字符构成回文串后 最小的一组做为每组的ans 求最大的ans
int main()
{
int t;
cin>>t;
while(t--)
{
int sum=0; // 统计偶数字符个数
int odd=0; //奇数组数
int n;
int flag=1;
cin>>n;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
if(x%2==0)
{
sum+=x;
}
else
{
flag=0;
sum+=x-1;// 奇数-1后成偶数对
odd++;//
}
}
sum/=2;//偶数对个数
if(flag)// 都为偶数对
{
cout<<sum*2<<endl;
}
else
{
if(sum<odd)
{
// 偶数对放到 单个奇数中 就构成回问串
cout<<1<<endl;
}
else
{
cout<<1+sum/odd*2<<endl; // 偶数对平方给每组 ans为最小的一组
}
}
}
return 0;
}
hdu 5744 思维题
最新推荐文章于 2020-05-29 14:48:03 发布