2016 Multi-University Training Contest 2 1011 Keep On Movin

題目鏈接:點擊打開鏈接

題目大意:給你每個字母的出現次數,問你最多能用多少個組成若干迴文串。

解題思路:對於都是偶數個的情況,很明顯答案就是總和,對於有奇數的情況,我們應該均勻分配剩下的點。算是一道簽到題吧。

代碼:

#include<iostream>
#include<vector>
#include<cmath>
#include<algorithm>
#include<ctime>
#include "cstdio"
#include "string"
#include "string.h"
#include "map"
using namespace std;

int main()
{
	int T,m,n;
	scanf("%d", &T);
	while (T--)
	{
		scanf("%d", &n);
		int num = 0, sum = 0;
		for (int i = 0;i < n;i++)
		{
			int temp;
			scanf("%d", &temp);
			if (temp & 1)
				num++;
			sum += temp;
		}
		if (num == 0)
			printf("%d\n", sum);
		else
		{
			sum -= num;
			sum = (int)(sum / num / 2) * 2;
			printf("%d\n", sum + 1);
		}
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章