HDU5744(贪心)

来源:互联网 发布:c语言算法是什么 编辑:程序博客网 时间:2024/06/05 09:57

题目连接
从奇数入手,考虑到个数为1的必定在一个串里面,然后大于1的奇数,减去1就是偶数了,就可以分配给每组

#include<bits/stdc++.h>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))#define LL long longconst int maxn = 1e5+200;const int inf  = 1 << 23;int main(){    int T;scanf("%d",&T);    while(T--){        int n;scanf("%d",&n);        LL sum=0;        LL cnt=0;        for(int i=0;i<n;i++){            int x;scanf("%d",&x);            if(x&1){                cnt++;sum+=x-1;            }            else                sum+=x;        }        LL x = sum/2;        LL ans = 0;        if(cnt)ans = 1 + x/cnt*2;        printf("%lld\n",cnt==0?sum:ans);    }    return 0;}
0 0