nyoj 1057 寻找最大数(三)
来源:互联网 发布:linux 迅雷下载 编辑:程序博客网 时间:2024/05/22 12:18
寻找最大数(三)
时间限制:1000 ms | 内存限制:65535 KB
难度:2
- 描述
给出一个整数N,每次可以移动2个相邻数位上的数字,最多移动K次,得到一个新的整数。
求这个新的整数的最大值是多少。
- 输入
- 多组测试数据。
每组测试数据占一行,每行有两个数N和K (1 ≤ N≤ 10^18; 0 ≤ K ≤ 100). - 输出
- 每组测试数据的输出占一行,输出移动后得到的新的整数的最大值。
- 样例输入
1990 1100 09090000078001234 6
- 样例输出
91901009907000008001234
贪心思想:每次从高位到低位进行查找,找到最大值,放在高位,并将数字串进行调整(位置移动)!查找的范围看k的大小,每次查找把K减去移动的次数,直到k为零!
代码:
#include<stdio.h>#include<string.h>int main(){ int i,j; int n,m; char a[200]; while( scanf("%s %d",a,&m)!=EOF) { getchar(); int len=strlen(a); for(i=0;i<len;i++) { if(m<=0) break; char t=a[i],k=i,mx=i; for(j=0;j<m&&k+1<len;j++) { if(t<a[++k]) { t=a[k]; mx=k; } }for(j=mx-1;j>=i;j--) { a[j+1]=a[j]; } a[i]=t; m=m-mx+i; } for(i=0;i<len-1;i++) { printf("%c",a[i]); } printf("%c\n",a[len-1]); } return 0;}
0 0
- nyoj 1057 寻找最大数(三)
- nyoj 1057 寻找最大数(三)
- NYOJ 1057 寻找最大数(三)
- NYOJ 1057 寻找最大数(三)
- NYOJ 1057 寻找最大数(三)
- nyoj 1057 寻找最大数(三)
- nyoj 1057-寻找最大数(三)
- NYOJ 1057 寻找最大数(三)
- nyoj 1057寻找最大数(三)
- NYOJ 1057 寻找最大数(三)
- NYOJ 寻找最大数(三)
- NYOJ 寻找最大数(三)
- nyoj寻找最大数(三)
- NYOJ 1057 寻找最大数(三)(贪心)
- nyoj 1057 寻找最大数(三) 贪心
- NYOJ 1057 寻找最大数(三) (贪心)
- nyoj 1057寻找最大数(三) 贪心
- 南阳oj NYoj 寻找最大数(三) 题目1057
- WIN7中ipconfig ping 不是内部或外部命令
- 【笨木头Unity】入门之旅005:正常人都要掌握的操作
- git图解
- Android中的Environment.getExternalStorageState使用(转自 YAnG_Linux)
- [OC] 关于类的封装
- nyoj 1057 寻找最大数(三)
- 自定义大头针
- ThinkPHP3.2.3---mysql+ajax实现长连接,实时监测数据库数据是否更新
- U_boot 的 bootcmd 和bootargs参数详解
- asp.net TemplateField模板中的Bind方法和Eval方法
- jQuery ajax - ajax() 方法
- java 文件流
- ASP.NET中EVAL用法大全
- LeetCode---Balanced Binary Tree