博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU - 5744 Keep On Movin
阅读量:5077 次
发布时间:2019-06-12

本文共 1650 字,大约阅读时间需要 5 分钟。

题目:

Professor Zhang has kinds of characters and the quantity of the 
ii-th character is aiai. Professor Zhang wants to use all the characters build several palindromic strings. He also wants to maximize the length of the shortest palindromic string. 
For example, there are 4 kinds of characters denoted as 'a', 'b', 'c', 'd' and the quantity of each character is {
2,3,2,2}
{2,3,2,2} . Professor Zhang can build {"acdbbbdca"}, {"abbba", "cddc"}, {"aca", "bbb", "dcd"}, or {"acdbdca", "bb"}. The first is the optimal solution where the length of the shortest palindromic string is 9. 
Note that a string is called palindromic if it can be read the same way in either direction. 

InputThere are multiple test cases. The first line of input contains an integer T, indicating the number of test cases. For each test case: 

The first line contains an integer n(1n105)(1≤n≤105) -- the number of kinds of characters. The second line contains nn integers a1,a2,...,ana1,a2,...,an (0ai104)(0≤ai≤104).OutputFor each test case, output an integer denoting the answer.Sample Input

441 1 2 432 2 251 1 1 1 151 1 2 2 3

Sample Output

3613

题意:

有n种字符,给出每个字符个数,要求组成回文串,求组成的回文串的最长的长度。

做法:

贪心,全是偶数个,奇数个没有或者只有一个时,答案为全部的和。

否则将偶数类的字符一对一对地分给落单地字符,就是最长,详情见代码。

代码:

#include 
using namespace std;typedef long long LL;LL a[320000];int n; void deal(){ scanf("%d",&n); LL sum=0,j=0; for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); sum+=a[i]; if(a[i]%2) j+=1; } if(j==0||j==1){ printf("%lld\n",sum); } else { printf("%lld\n",(sum-j)/j/2*2+1); }}int main(){ int t; scanf("%d",&t); while(t--) deal(); return 0;}

  

转载于:https://www.cnblogs.com/xfww/p/7839708.html

你可能感兴趣的文章
【BZOJ 5222】[Lydsy2017省队十连测]怪题
查看>>
第二次作业
查看>>
【input】 失去焦点时 显示默认值 focus blur ★★★★★
查看>>
Java跟Javac,package与import
查看>>
day-12 python实现简单线性回归和多元线性回归算法
查看>>
Json格式的字符串转换为正常显示的日期格式
查看>>
[转]使用 Razor 进行递归操作
查看>>
[转]Android xxx is not translated in yyy, zzz 的解决方法
查看>>
docker入门
查看>>
Android系统--输入系统(十一)Reader线程_简单处理
查看>>
监督学习模型分类 生成模型vs判别模型 概率模型vs非概率模型 参数模型vs非参数模型...
查看>>
Mobiscroll脚本破解,去除Trial和注册时间限制【转】
查看>>
实验五 Java网络编程及安全
查看>>
32位与64位 兼容编程
查看>>
iframe父子页面通信
查看>>
ambari 大数据安装利器
查看>>
java 上传图片压缩图片
查看>>
magento 自定义订单前缀或订单起始编号
查看>>
ACM_拼接数字
查看>>
计算机基础作业1
查看>>