Keep On Movin HDU

来源:互联网 发布:js控制滚动条更细腻 编辑:程序博客网 时间:2024/05/22 09:37

题意:

若干个字母,形成回文串。询问回文串 最短长度最大。

思路:

先将2的个数提取出来,考虑奇数个数,平分

#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <queue>#include <vector>using namespace std;int a[100005];typedef long long ll;bool judge(ll k,ll odd,ll even){    ll num=(k-1)*odd;    if(even>=num)        return true;    return false;}int main(){    int t;    scanf("%d",&t);    while(t--)    {        int n;        scanf("%d",&n);        ll odd=0,even=0;        for(int i=1;i<=n;i++)        {            int m;            scanf("%d",&m);            if(m&1)            {                odd++;                even+=m-1;            }            else            {                even+=m;            }        }        if(odd==0)        {            printf("%d\n",even);            continue;        }        int k=even/odd;        if(k&1)            k--;        printf("%d\n",k+1);    }}