HDU 5744 Keep On Movin (贪心)
时间:2021-10-03
本文章向大家介绍HDU 5744 Keep On Movin (贪心),主要包括HDU 5744 Keep On Movin (贪心)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
HDU 5744 Keep On Movin
Mean
给定\(n\)个字符,每个字符的数量为\(a_i\),需要你构造出若干组回文串,求所有组合方案中最短长度的最大值。
Sol
贪心
计手上相等对数目为\(num\)
\(a[i]\)为奇数的情况取到剩下1,此时手上的相等对数量加上\(a[i]/2\)。
\(a[i]\)为偶数的情况下全部取完,此时手上的相等对数量加上\(a[i]/2\)。
计\(cnt\)为\(a\)中奇数的个数。
若\(cnt=0\),则答案为\(num*2\)。
否则,将所有对均分给这些奇数个位置,答案为\(2*num/cnt+1\)
Code
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define dep(i,a,b) for(int i=(a);i>=(b);--i)
#define lowbit(x) (x&(-x))
#define debug(x) cout<<#x<<" :"<<x<<endl
#define debug1(x) cout<<#x<<" :"<<x<<" "
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
const int N=2e5+20;
const int MAX=10000007;
inline int read() {
char c=getchar();int x=0,f=1;
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0',c=getchar();}
return x*f;
}
inline void out(int x) {
if(x>9) out(x/10);
putchar(x%10+'0');
}
int q[N];
int n;
int main(){
int T=read();
while(T--){
n=read();
int sum = 0;
int od = 0;
rep(i,1,n){
q[i]=read();
if(q[i]&1){
od++;
sum+=q[i]/2;
}
else sum+=q[i]/2;
}
if(!od)printf("%d\n",sum*2);
else printf("%d\n",sum/od*2+1);
}
return 0;
}
原文地址:https://www.cnblogs.com/quuns/p/15365190.html
- GitHub无法访问或访问缓慢解决办法
- 我用 Python 爬取了全国 4500 个热门景点,告诉你国庆哪里去不得?
- Fragment添加、删除、替换
- spring整合hibernate
- Android应用程序中应用图标和名字的设置
- java中的==和equals
- Android手机开机自动启动
- spring Boot 配置文件详解
- Fragment回退栈及弹出方法
- RepeatMasker安装和使用
- 漏洞追踪:如何检查并修复GHOST(幽灵)漏洞
- 锁的实现原理解锁的实现加锁的实现
- 幽灵漏洞(GHOST)影响大量Linux操作系统及其发行版(更新修复方案)
- openfire中mysql的前期设置
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法