题意:给出,每个字符的个数,让你找,所以字符组成的回文串集合中,每个集合取最小值,然后所以的取最大值。找回文串中最小值的最大值
统计 1 和 2 的个数,如 3可以为 1和2 组成。然后一次把2均分到1上,这样统计出来的就是最大值
#include<cstdio>
int main()
{
int n,k,t;
scanf("%d",&t);
while(t--)
{
int sum=0,z=0,h=0;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
scanf("%d",&k);
if(k&1==1)h++,sum+=(k-1)/2;
else sum+=(k/2);
}
if(h==0)printf("%d\n",sum*2);
else if(h>sum)printf("1\n");
else if(sum==h)printf("3\n");
else printf("%d\n",1+(sum/h)*2);
}
return 0;
}
本文探讨了一种算法问题,即寻找由特定字符组成的回文串集合中的最小值,并求这些最小值的最大值。通过统计奇数和偶数个字符的数量来解决该问题,最终实现高效的算法解决方案。

被折叠的 条评论
为什么被折叠?



