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个括号串之间进行组合,求能够匹 ...
随机推荐
- 网络编程----socketserver多并发实现、FTP上传多并发、udp协议套接字多并发
一.socketserver多并发 基于tcp的套接字,关键就是两个循环,一个 ...
- 前端基础----html初识、常用标签
一.HTML初识 web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ...
- 【DP】【CF9D】 How many trees?
传送门 Description 给你两个正整数\(n,h\),求由\(n\)个点组成的高度大于等于\(h\)的二叉树有多少个 Input 一行两个整数\(n,h\) Output 一个整数代表答案. ...
- K8S Link
https://www.cnblogs.com/linuxk/p/9783510.html https://www.cnblogs.com/fengzhihai/p/9851470.html
- OpenCV---环境安装和初次使用
一:环境安装 pip3 install opencv-python #OpenCV模块,必须安装 pip3 install opencv-contrib-python #OpenCV扩展模块,选择安装 ...
- Ubuntu 下安装sqlite3 及常用SQL 语句
安装sqlite3命令如下: sudo apt-get install sqlite3 创建或者打开已有的数据库文件: sqlite3 test.db 进入数据库后,可以进行以下常用SQL语句操作: ...
- extjs grid demo
Ext.onReady(function () { var store = Ext.create('Ext.data.Store', { fields: ['id', 'name', 'account ...
- aidl.exe'' finished with non-zero exit value 1问题解决【转载】
PS:Android Studio用AIDL时,碰到一个非常棘手的问题,但是百度之,压根非法解决,FQ出去,终于找到了一篇解决问题的文章,特地转载之. 之前使用aidl传递的都是基本的数据类型比如in ...
- delphi 7 连接 MySql
网上有很多关于Delphi连接MySql数据库的文章,在这里,我只记录下自己测试过的方法,以备所需.系统环境:Windows XP SP3软件环境:Delphi 7 .mysql-installer- ...
- void指针和NULL指针
Void指针和NULL指针 Void指针: Void指针我们称之为通用指针,就是可以指向任意类型的数据.也就是说,任何类型的指针都可以赋值给Void指针. 举例: #include<stdio. ...