NYOJ 月赛 448 寻找最大数
2011-11-28 16:19
197 查看
比赛前zmh给我说有水题,,如今看来,,能称之为水题的也只有这道题了,,,可惜的是,比赛时仍旧有很多人没有做出来。我当时花了30分钟左右1Y的,,感觉没有什么特殊的数据需要考虑,不明白为什么有人会错那么多次。。。亏得做出来一题,否则就被剃光头了,,,,,,悲剧。。。。。。题目:
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,
比如当n=92081346718538,m=10时,则新的最大数是9888
输入
第一行输入一个正整数T,表示有T组测试数据
每组测试数据占一行,每行有两个数n,m(n可能是一个很大的整数,但其位数不超过100位,并且保证数据首位非0,m小于整数n的位数)
输出
每组测试数据的输出占一行,输出剩余的数字按原次序组成的最大新数
样例输入
样例输出
ac代码:
寻找最大数
时间限制: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
ac代码:
#include <iostream> #include <string.h> #include <cstdio> #include <string> using namespace std; int main(){ int ncase,m; char ss[110]; scanf("%d",&ncase); while(ncase--){ scanf("%s",ss); scanf("%d",&m); int len=strlen(ss); int x=len-m; if(x==len) {printf("%s",ss);continue;} else { int pos=0; while(x){ for(int i=pos,max=0;i<=len-x;++i){ if(ss[i]-'0'>max){ max=ss[i]-'0'; pos=i; } } printf("%c",ss[pos]); pos++; x--; } printf("\n"); } } return 0; }
相关文章推荐
- NYOJ 月赛 448 寻找最大数
- nyoj 448 寻找最大数
- nyoj448--寻找最大数
- nyoj 448 寻找最大数
- nyoj 448 寻找最大数
- nyoj448 寻找最大数
- nyoj 448 寻找最大数
- 贪心——xy 1255寻找最大数(nyoj_448)
- NYOJ 448 寻找最大数
- NYOJ 448 寻找最大数
- NYOJ---题目448寻找最大数
- NYOJ_448 寻找最大数
- 寻找最大数--nyoj题目448
- NYOJ-448-寻找最大数
- NYOJ 448 寻找最大数
- NYOJ448_寻找最大数【贪心】
- NYOJ448_寻找最大数【贪心】
- nyoj448 寻找最大数
- NYOJ 448 寻找最大数
- NYOJ 448 寻找最大数(贪心)