nyoj---t448(寻找最大数)
描述
请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,
比如当n=92081346718538,m=10时,则新的最大数是9888
- 输入
- 第一行输入一个正整数T,表示有T组测试数据
每组测试数据占一行,每行有两个数n,m(n可能是一个很大的整数,但其位数不超过100位,并且保证数据首位非0,m小于整数n的位数) - 输出
- 每组测试数据的输出占一行,输出剩余的数字按原次序组成的最大新数
- 样例输入
-
2
92081346718538 10
1008908 5 - 样例输出
-
9888
98
#include <stdio.h>
#include <string.h>
int main()
{
int t,m,n,q;
char ans[105],s[105];
int max;
int i,x;
scanf("%d",&t);
while (t--)
{
//memset(a,0,sizeof(a));
scanf("%s%d",s,&m);
n = strlen(s);
for (i=0,q=-1;i<n-m;i++)
{
max = 0;
//x = cmp(a,n);
for(int j=q+1;j<=m+i;j++)
if(max < s[j])
max = s[j] , q = j;
ans[i] = max;
}
/*for(i=0;i<n;i++)
if(a[i]!='a')
printf("%c",a[i]);
printf("\n");*/
ans[n-m] = '\0';
puts(ans);
}
return 0;
}
#include <stdio.h>
#include <iostream>
using namespace std;
#include <string.h>
int cmp(char a[],int n)
{
int i,x;
char m;
m = a[n-1];
x=n-1;
for (i=n-2;i>=0;i--)
{
if (m>=a[i])
{
m = a[i];
x = i;
}
}
return x;
}
int main()
{
int t,m,n;
char a[110];
int i,x;
scanf("%d",&t);
while (t--)
{
memset(a,0,sizeof(a));
scanf("%s%d",a,&m);
n = strlen(a);
for (i=0;i<m;i++)
{
x = cmp(a,n);
a[x] = '@';
}
for(i=0;i<n;i++)
if(a[i]!='@')
printf("%c",a[i]);
printf("\n");
}
return 0;
}
同样的结果,不同的是能不能通过提交。ACM的思想是很关键的,然后需要严谨的步骤,不能出现丁点的错误,所以继续努力吧。向大牛看齐。
nyoj---t448(寻找最大数)的更多相关文章
- nyoj 448 寻找最大数(贪心专题)
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...
- nyoj 448 寻找最大数
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...
- 寻找最大数--nyoj题目448
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...
- nyoj 寻找最大数(二)
寻找最大数(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 给你一个数字n(可能有前缀0). 要求从高位到低位,进行 进栈出栈 操作,是最后输出的结果最大. ...
- nyoj 寻找最大数
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...
- ACM 寻找最大数
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...
- NYOJ-1057 寻找最大数(三)(贪心)
寻找最大数(三) 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 给出一个整数N,每次可以移动2个相邻数位上的数字,最多移动K次,得到一个新的整数. 求这个新的整数的 ...
- NYOJ-448 寻找最大数(贪心)
NYOJ-448 寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920 ...
- AKOJ -- 1529 -- 寻找最大数
1529: 寻找最大数 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 107 Solved: 53 上一题SubmitStatus标签打分编辑题目信 ...
- NYOJ448寻找最大数,贪心~~
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=92081346718538 ...
随机推荐
- C++11 之for 新解
前言 C++11这次的更新带来了令非常多C++程序猿期待已久的for range循环,每次看到javascript. lua里的for range.心想要是C++能有多好,心里别提多酸了.这 ...
- python 列表函数(转)
list函数: 功能:将字符创转化为列表,例: 列表基本函数: 1.元素赋值,例: 注意:通过list[0]= 'hel',如果原来位置上有值,会覆盖掉原来的. 2.分片操作 1)显示序列,例: 注意 ...
- oc-15-匿名对象
/** 匿名对象 1.访问成员变量--->只能给成员变量设置值,只能成功1次,每次都是新的对象. 2.调用方法时类似类方法: 跟类方法区别:匿名对象创建对象了,开辟空间了. */ #import ...
- How does a relational database work
http://blog.jobbole.com/100349/ http://coding-geek.com/how-databases-work/
- HTML目录
1. 表格标记 2. HTML常用标记 3. 博客园添加访问人数统计 4. 如何快速掌握CSS(各种CSS工具) 5. HTTP协议状态码详解(HTTP Status Code)(转)
- C#中String和string有什么区别
在C#中,string 是 System.String 的别名,所以基本上在使用时是没有差别的. 习惯上,我们把字符串当作对象时(有值的对象实体),我们用string.而我们把它当类时(需要字符串类中 ...
- 项目源码--Android视频MV类网站客户端
下载源码 技术要点: 1.视频MV类网站客户端框架 2.底部TAB功能模块 3.用户管理模块 4.结合优质动画技术,良好的用户体验 5.用户设置模块 6.sqlite数据库灵活的应用 7.源码带有非常 ...
- Topology: The Architecture of Distributed Systems--reference
reference:http://blog.couchbase.com/topology-architecture-distributed-systems You can’t judge a book ...
- CSRF 攻击的应对之道--转
http://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/ 简介: CSRF(Cross Site Request Forgery, 跨站域 ...
- 使用boost的deadline_timer实现一个异步定时器
概述 最近在工作上需要用到定时器,然后看到boost里面的deadline_timer可以实现一个定时器,所以就直接将其封装成了ATimer类,方便使用,ATimer有以下优点: 可以支持纳秒.毫秒. ...