XDU-1015 无聊的Light Light (贪心)
来源:互联网 发布:算法之美 中文版 pdf 编辑:程序博客网 时间:2024/04/30 12:10
1015: 无聊的Light Light
Time Limit: 1 Sec Memory Limit: 128 MB[Submit][Status][Web Board]
Description
ACM实验室某位比较胖的同学在上算法课的时候实在太无聊了,因为他觉得老师讲的实在太简单了。 于是他脑洞大开,拿出了一张白纸,想在纸上写下一个尽量大的正整数。已知这个数每一位上为数字1~9,以及他拥有的初始体力值为w,写下数字i (1 ≤ i ≤ 9)所消耗的体力值ai。 由于这人比较懒,他希望在不超过初始体力值的情况下,他能写出的整数尽量大。
Input
多组数据(不超过100组),处理到EOF。 每组数据包含两行,第一行为w(1 ≤ w ≤ 105)。 第二行为9个整数,分别为a1~a9(1 ≤ ai ≤ 105)。
Output
所求的最大的整数,如果什么都写不了,输出-1。
Sample Input
31 1 1 1 1 1 1 1 123 3 3 3 3 3 3 3 341 2 3 4 5 6 7 8 9
Sample Output
999-11111
很简单的贪心,首先要保证该数取最长的位数,在此基础上保证从最高位到最低位每一位最大即可。
#include <cstdio>#include <algorithm>using namespace std;int w,mn,all,t,num,a[10];int sear() { for(num=9;num;--num) if(t>=a[num]) return num; return 0;}int main() { while(scanf("%d",&w)==1) { mn=100005; for(num=1;num<=9;++num) { scanf("%d",a+num); mn=min(mn,a[num]); } if(mn>w) printf("-1\n"); else { all=w%mn;//all表示在保证数字位数最多的情况下还剩余多少体力值 while(w>=mn) { t=all+mn; printf("%d",sear());//输出满足a[num]<t的最大的num all-=a[num]-mn; w-=a[num]; } printf("\n"); } } return 0;}
0 0
- XDU-1015 无聊的Light Light (贪心)
- Light
- HDU1687 Lucky Light 【贪心】
- light oj贪心
- uva 10110 Light, more light(因子的特性)
- 【Light-oj】-1198 - Karate Competition(贪心+双端队列)
- light oj 1189 - Sum of Factorials (阶乘+贪心)
- (挑战编程_7_1)Light, more light
- uva 10110 Light, more light (数论)
- Light oj--1258(KMP的变形)
- Light OJ 1015
- Light Bulb(三分)
- Light Bulb(三分)
- 光照(light)
- Light oj 1198 Karate Competition 【贪心】
- TREE KERNELS IN SVM-LIGHT---在svm-light中树核的使用(翻译)
- Light,More Light
- 10110 - Light, more light
- 控制kobuki 运行一个矩形: 类的形式写ROS节点程序
- iOS开发-runtime获取设备电池电量
- java枚举enum
- DIV+CSS实操四:经管系网页内容模块内容添加(一)
- 看kali教程的一些总结(i春秋上的kali吧教程)
- XDU-1015 无聊的Light Light (贪心)
- 看!数据分析领域中最为人称道的七种降维方法
- 谈下自己编程的能力和一些项目
- 用CHI检验提取文本特征词
- 【拔苗计划】linux学习笔记——netstat命令学习
- 各种编程语言的深度学习库整理大全
- JSON需要的jar包和和String类型转JSON
- 利用firebug调试控件样式
- 倒油题目(Java源代码)