寻找最大数


时间限制: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. 华为荣耀3C最新版ROM的root,(4.7.1和4.8.1等等通用方法)

    手头一台honor 3c的机器.应该是线刷的时候,把IMEI给刷掉了.导致移动2G卡无法上网. 刷了4.7.1或者4.8.1.尝试了全部方法都root失败了. 正好我手头有6582的代码.我想.既然系 ...

  2. 通过Debug-->Attach to Process的方式来调试网站

    找到网站所对应的应用程序池

  3. #学习笔记#——JavaScript 数组部分编程(七)

    24.柯里化 首先想解释一下,“柯里化”的意思, [在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结 ...

  4. Cisco Works 2000 网络管理软件安装、配置全过程

    下面是在windows 2000 server 下安装ciscoworks 2000的过程.(附件中是标准avi格式文件,由于上传附件大小限制,更多内容见Sina播客) 浏览全部原创视频请见: htt ...

  5. 运动识别之HOJ3D和HMM

    http://cvrc.ece.utexas.edu/Publications/Xia_HAU3D12.pdf   View Invariant Human Action Recognition Us ...

  6. UVA 12075 Counting Triangles

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  7. 用内置的库turtle来画一朵花,python3

    题目:用内置的库turtle来画一朵花 看了群主最后成像的图片,应该是循环了36次画方框,每次有10度的偏移. 当然不能提前看答案,自己试着写代码. 之前有用过海龟画图来画过五角星.奥运五环.围棋盘等 ...

  8. error c2572重定义默认參数

    因为想省事.在声明过函数之后直接复制粘贴去实现,结果出现error c2572重定义默认參数 顾名思义.该默认參数被定义多次.在一个文件(或一个作用域)中,仅仅能为形參指定默认 实參一次.在编译的时候 ...

  9. [Angular] How to get Store state in ngrx Effect

    For example, what you want to do is navgiate from current item to next or previous item. In your com ...

  10. Ternary Tree

    前一篇文章介绍了Trie树.它实现简单但空间效率低.假设要支持26个英文字母,每一个节点就要保存26个指针,因为节点数组中保存的空指针占用了太多内存.让我来看看Ternary Tree. When y ...