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(贪心)的更多相关文章

  1. CSU 1859 Gone Fishing(贪心)

    Gone Fishing [题目链接]Gone Fishing [题目类型]贪心 &题解: 这题要先想到枚举走过的湖,之后才可以贪心,我就没想到这,就不知道怎么贪心 = = 之后在枚举每个湖的 ...

  2. 【贪心】CSU 1809 Parenthesis (2016湖南省第十二届大学生计算机程序设计竞赛)

    题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 题目大意: 给一个长度为N(N<=105)的合法括号序列.Q(Q<= ...

  3. 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 ...

  4. 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 ...

  5. ACM学习历程—CSU 1216 异或最大值(xor && 贪心 && 字典树)

    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1216 题目大意是给了n个数,然后取出两个数,使得xor值最大. 首先暴力枚举是C(n,  ...

  6. csu - 1538: Shopping (贪心)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1538 很奇妙的一个题,开始没有思路.问了别人才知道. 题目的意思可以理解成上图中,从0点开始向右走 ...

  7. csu 1757(贪心或者树状数组)

    1757: 火车入站 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 209  Solved: 51[Submit][Status][Web Board] ...

  8. 2014 Multi-University Training Contest 1/HDU4864_Task(贪心)

    解题报告 题意,有n个机器.m个任务. 每一个机器至多能完毕一个任务.对于每一个机器,有一个最大执行时间Ti和等级Li,对于每一个任务,也有一个执行时间Tj和等级Lj.仅仅有当Ti>=Tj且Li ...

  9. 2018 Multi-University Training Contest 1-1002 -Balanced Sequence(括号匹配+贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6299 题目: 题意:t组数据,每组数据给你一个n表示给你n个括号串,这n个括号串之间进行组合,求能够匹 ...

随机推荐

  1. [持续更新][备份]GDB调试工具常用命令

    一.前言 ACM开赛在即,得知dev-cpp不适用之后,不得不再次重拾gdb基本操作... 辗转Emacs和Code::blocks数次之后,感觉还是Emacs更适合我的风格,尽管配置稍显麻烦,但其开 ...

  2. Redis基操

    Redis key-value类型的缓存数据库 指定IP和端口连接redis: ./redis-cli -h ip -p port Redis基本操作命令 命令 返回值 简介 ping PONG 测试 ...

  3. Codeforces 931.F Teodor is not a liar!

    F. Teodor is not a liar! time limit per test 1 second memory limit per test 256 megabytes input stan ...

  4. STL源码分析归档

    1) algorithm 2) traits 3) iterator 4) list 5) function 6) rbtree 7) bitset 8) priority_queue 9) hash ...

  5. 新式类 VS 经典类

    一.概述 Python中支持多继承,也就是一个子类可以继承多个父类/基类.当一个调用一个自身没有定义的属性时,它是按照何种顺序去父类中寻找的呢?尤其是当众多父类中都包含有同名的属性,这就涉及到新式类 ...

  6. mysql 自动记录数据最后修改时间

    原文 -- mysql ,还真有这样的说法: mysql> create table test( ), -> uptime timestamp on update current_time ...

  7. Bootstrap 按钮组

    连在一起的按钮:.btn-group <div class="btn-group" role="group"> <button class=& ...

  8. Python学习笔记(三十九)— 内置模块(8)XML基础

    摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432002075 ...

  9. Fiddler 网页采集抓包利器__手机app抓包

    用curl技术开发了一个微信文章聚合类产品,把抓取到的数据转换成json格式,并在android端调用json数据接口加以显示: 基于weiphp做了一个掌上头条插件,也是用的网页采集技术:和一个创业 ...

  10. sublime text3 编辑器常用快捷键

    选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并更改所有相同的变量名.函数 ...