csu 1749: Soldiers ' Training(贪心)
1749: Soldiers ' Training
Time Limit: 1 Sec Memory Limit: 512 MB
Submit: 37 Solved: 18
[Submit][Status][Web Board]
Description
In
a strategic computer game "Settlers II" one has to build defense
structures to expand and protect the territory. Let's take one of these
buildings. At the moment the defense structure accommodates exactly n
soldiers. Within this task we can assume that the number of soldiers in
the defense structure won't either increase or decrease.
Every
soldier has a rank — some natural number from 1 to k. 1 stands for a
private and k stands for a general. The higher the rank of the soldier
is, the better he fights. Therefore, the player profits from having the
soldiers of the highest possible rank.
To
increase the ranks of soldiers they need to train. But the soldiers
won't train for free, and each training session requires one golden
coin. On each training session all the n soldiers are present.
At
the end of each training session the soldiers' ranks increase as
follows. First all the soldiers are divided into groups with the same
rank, so that the least possible number of groups is formed. Then,
within each of the groups where the soldiers below the rank k are
present, exactly one soldier increases his rank by one.
You
know the ranks of all n soldiers at the moment. Determine the number of
golden coins that are needed to increase the ranks of all the soldiers
to the rank k.
Input
Each
case contains two lines.The first line contains two integers n and k
(1 ≤ n, k ≤ 100). They represent the number of soldiers and the number
of different ranks correspondingly. The second line contains n numbers
in the non-decreasing order. The i-th of them, ai, represents the rank
of the i-th soldier in the defense building (1 ≤ i ≤ n, 1 ≤ ai ≤ k).
Output
Each case print a single integer — the number of golden coins needed to raise all the soldiers to the maximal rank.
Sample Input
4 4
1 2 2 3
4 3
1 1 1 1
Sample Output
4
5
HINT
In the first example the ranks will be raised in the following manner:
1 2 2 3 → 2 2 3 4 → 2 3 4 4 → 3 4 4 4 → 4 4 4 4
Thus totals to 4 training sessions that require 4 golden coins.
Source
题意:每次可以提升在相同等级中的人中任意一个,完成这一步需要一个金币,问将所有人升到满级所需时间?
题解:贪心模拟即可。
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <string.h>
using namespace std;
const int N = ;
int a[N],b[N];
int main(){
int n,k;
while(scanf("%d%d",&n,&k)!=EOF){
int sum = ;
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
sum+=a[i];
}
int cnt = ;
sort(a+,a++n);
while(sum<n*k){
cnt++;
for(int i=;i<=n;i++) b[i] = a[i];
if(a[]<k){
b[]++;
sum++;
}
for(int i=;i<=n;i++){
if(a[i]==a[i-]||a[i]==k) continue;
b[i]++;
sum++;
}
for(int i=;i<=n;i++){
a[i] = b[i];
}
sort(a+,a++n);
}
printf("%d\n",cnt);
}
}
csu 1749: Soldiers ' Training(贪心)的更多相关文章
- CSU 1859 Gone Fishing(贪心)
Gone Fishing [题目链接]Gone Fishing [题目类型]贪心 &题解: 这题要先想到枚举走过的湖,之后才可以贪心,我就没想到这,就不知道怎么贪心 = = 之后在枚举每个湖的 ...
- 【贪心】CSU 1809 Parenthesis (2016湖南省第十二届大学生计算机程序设计竞赛)
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 题目大意: 给一个长度为N(N<=105)的合法括号序列.Q(Q<= ...
- 2017 Multi-University Training Contest - Team 1 1002&&HDU 6034 Balala Power!【字符串,贪心+排序】
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- 2018 Multi-University Training Contest 1 Distinct Values 【贪心 + set】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6301 Distinct Values Time Limit: 4000/2000 MS (Java/Ot ...
- ACM学习历程—CSU 1216 异或最大值(xor && 贪心 && 字典树)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1216 题目大意是给了n个数,然后取出两个数,使得xor值最大. 首先暴力枚举是C(n, ...
- csu - 1538: Shopping (贪心)
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1538 很奇妙的一个题,开始没有思路.问了别人才知道. 题目的意思可以理解成上图中,从0点开始向右走 ...
- csu 1757(贪心或者树状数组)
1757: 火车入站 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 209 Solved: 51[Submit][Status][Web Board] ...
- 2014 Multi-University Training Contest 1/HDU4864_Task(贪心)
解题报告 题意,有n个机器.m个任务. 每一个机器至多能完毕一个任务.对于每一个机器,有一个最大执行时间Ti和等级Li,对于每一个任务,也有一个执行时间Tj和等级Lj.仅仅有当Ti>=Tj且Li ...
- 2018 Multi-University Training Contest 1-1002 -Balanced Sequence(括号匹配+贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6299 题目: 题意:t组数据,每组数据给你一个n表示给你n个括号串,这n个括号串之间进行组合,求能够匹 ...
随机推荐
- String和stringbuffer和stringbuilder的区别
String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要 ...
- 驱动之LCD的介绍与应用20170209
本文主要介绍的是LCD的介绍与应用,直接看个人笔记即可:
- 关于使用EmguCV出现 “无法加载 DLL“cvextern”: 找不到指定的程序” 的解决方法
http://blog.csdn.net/cdjcong/article/details/8444191 查找了网上的一些说法,都是说没有设置好路径,或者未将DLL文件复制到Debug文件夹下,但是我 ...
- bundle adjustment原理(1)转载
转自菠菜僵尸 http://www.cnblogs.com/shepherd2015/p/5848430.html bundle adjustment原理(1) 那些光束平差的工具,比如SBA.SSB ...
- mac下c++代码阅读工具
http://note.youdao.com/noteshare?id=101a265bb9d780444b6a03ca526b887a
- chrome 浏览器如何安装草料二维码
https://cli.im/news/6527 实测有效
- maven创建spring项目之后,启动报错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
出错情景:maven中已经加载了spring的核心包,但是项目启动时,报错: org.apache.catalina.core.StandardContext listenerStart严重: Err ...
- 利用Zynq Soc创建一个嵌入式工程
英文题目:Using the Zynq SoC Processing System,参考自ADI的ug1165文档. 利用Zynq Soc创建一个嵌入式工程,该工程总体上包括五个步骤: 步骤一.新建空 ...
- python---Scrapy模块的使用(一)
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中. Scrapy 使用了 Twisted异步网络库来处理网络通讯.整体 ...
- linux下应用crontab对mysql数据库进行定时备份
linux下应用crontab对mysql数据库进行定时备份 @(编程) mysql数据库提供了备份命令mysqldump,可以结合crontab命令进行定时备份. 我写了一个mysqlbackup. ...