寻找最大数


时间限制:1000 ms  |  内存限制:65535 KB
难度:2

描写叙述

请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,





比方当n=92081346718538。m=10时。则新的最大数是9888





 





输入

第一行输入一个正整数T。表示有T组測试数据

每组測试数据占一行,每行有两个数n,m(n可能是一个非常大的整数,但其位数不超过100位。而且保证数据首位非0,m小于整数n的位数)

输出

每组測试数据的输出占一行,输出剩余的数字按原次序组成的最大新数

例子输入

2

92081346718538 10

1008908 5

例子输出

9888

98

来源

第六届itat复赛B卷2题改编

上传者

ACM_赵铭浩

题目大意:……删去m位数。输出剩余的数字  使新数最大

思路:贪心思想。设位数为len。删去m位数,输出新数,就是输出新数为len-m位

依据贪心思想。从最高位開始,每次保证取出来的数字都是最优的。

比方说7位数,删去3位数。

应该从第一位到第len-2位上取最大值。这样首先保证最高位

千位上的结果正确。再从刚才找到值的下一位開始到第len-1位上取最大值。保证百位上

的结果正确。再从刚才找到值的下一位開始到第len位上取最大值,保证各位上结果正确。

比方:9456973 4

由于要删去4个数,所以输出新数为3位。

从第一位9開始到第7-2=5位,找到千位上的最大值,而且尽可能靠左。

找到第一位上的

第一个9。则千位为9。再从第二位4開始到第7-1位,找到百位上的最大值,找到第5位上

的第二个9。再从第6位開始到第7位,找到个位上的最大值,找到第6位上的7。

则输出结果为997.

#include<stdio.h>
#include<string.h> char ch[110];
int main()
{
int T,num;
scanf("%d",&T);
while(T--)
{
memset(ch,0,sizeof(ch));
getchar();
scanf("%s %d",ch,&num);
int len = strlen(ch);
num = len - num;
int pos = 0;
while(num > 0)
{
int max = -1;
int j;
for(j = pos; j <= len-num; j++)
{
if(ch[j]-'0' > max && ch[j]!='a')
{
max = ch[j]-'0';
pos = j;
}
}
printf("%c",ch[pos]);
ch[pos] = 'a';
num--;
}
printf("\n"); }
return 0;
}

NYOJ448_寻找最大数【贪心】的更多相关文章

  1. NYOJ-448 寻找最大数(贪心)

    NYOJ-448 寻找最大数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920 ...

  2. NYOJ448寻找最大数,贪心~~

    寻找最大数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=92081346718538 ...

  3. nyoj 448 寻找最大数(贪心专题)

    寻找最大数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...

  4. NYOJ-1057 寻找最大数(三)(贪心)

    寻找最大数(三) 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 给出一个整数N,每次可以移动2个相邻数位上的数字,最多移动K次,得到一个新的整数. 求这个新的整数的 ...

  5. NYOJ-851寻找最大数(二),栈贪心!

    寻找最大数(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 给你一个数字n(可能有前缀0). 要求从高位到低位,进行 进栈出栈 操作,是最后输出的结果最大. 输入 ...

  6. 寻找最大数--nyoj题目448

    寻找最大数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...

  7. AKOJ -- 1529 -- 寻找最大数

    1529: 寻找最大数 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 107  Solved: 53 上一题SubmitStatus标签打分编辑题目信 ...

  8. nyoj 寻找最大数(二)

    寻找最大数(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 给你一个数字n(可能有前缀0). 要求从高位到低位,进行 进栈出栈 操作,是最后输出的结果最大.   ...

  9. nyoj448 寻找最大数

    寻找最大数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大. 比方当n=920813467185 ...

随机推荐

  1. Python学习第一篇

    好久没有来博客园了,今天开始写自己学习Python和Hadoop的学习笔记吧.今天写第一篇,Python学习,其他的环境部署都不说了,可以参考其他的博客. 今天根据MachineLearning里面的 ...

  2. 在hive执行创建表的命令,遇到异常com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes

    今天在练习hive的操作时,在创建数据表时,遇到了异常 FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.ex ...

  3. @MapperScan 和 @ComponentScan 区别

    1.首先@MapperScan和@ComponentScan都是扫描包 2.@ComponentScan是组件扫描注解,用来扫描@Controller  @Service  @Repository这类 ...

  4. hzwer 模拟题 祖孙询问

    祖孙询问 题目描述 已知一棵n个节点的有根树.有m个询问.每个询问给出了一对节点的编号x和y,询问x与y的祖孙关系. 输入输出格式 输入格式: 输入第一行包括一个整数n表示节点个数. 接下来n行每行一 ...

  5. Webhook

    Webhook就是用户通过自定义回调函数的方式来改变Web应用的一种行为,这些回调函数可以由不是该Web应用官方的第三方用户或者开发人员来维护,修改.通过Webhook,你可以自定义一些行为通知到指定 ...

  6. Add Webhooks to Your API the Right Way

    Add Webhooks to Your API the Right Way Adam DuVander / December 15, 2016 In the last 10 years, APIs ...

  7. 使用LVS 实现负载均衡的原理。

    LVS 负载均衡 负载均衡集群是 Load Balance 集群.是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端提供服务的一种方式.常用 的负载均衡. 开源软件有Nginx. ...

  8. 在电子商务里,一般会提到这样几个词:商品、单品、SPU、SKU

    简单理解一下,SPU是标准化产品单元,区分品种:SKU是库存量单位,区分单品:商品特指与商家有关的商品,可对应多个SKU. 首先,搞清楚商品与单品的区别.例如,iphone是一个单品,但是在淘宝上当很 ...

  9. javafx clipboard

    public class EffectTest extends Application { public static void main(String[] args) { launch(args); ...

  10. OpenCV —— 矩阵和图像操作

    cvAbs , cvAbsDiff , cvAbsDiffS cvAdd , cvAddS , cvAddWeighted(可添加权重) #include <cv.h> #include ...