寻找最大数(三)
来源:互联网 发布:mac粉底液怎么样 编辑:程序博客网 时间:2024/04/29 03:36
描述
给出一个整数N,每次可以移动2个相邻数位上的数字,最多移动K次,得到一个新的整数。
求这个新的整数的最大值是多少。
输入多组测试数据。
每组测试数据占一行,每行有两个数N和K (1 ≤ N≤ 10^18; 0 ≤ K ≤ 100).输出每组测试数据的输出占一行,输出移动后得到的新的整数的最大值。样例输入1990 1
100 0
9090000078001234 6
样例输出9190
100
9907000008001234
思路:使用贪心算法,将在部分范围内,让最大的数放在最左面,使整个数字的值变的最大。
#include<stdio.h>#include<string.h>#include<algorithm>int main(void){ char c[20] = "0"; int N = 0; while (scanf("%s%d",c, &N) != EOF) { int len = strlen(c); int t = 0; int i = 0; while (i<len&&N>0) { int j = 0; t = i; for (j = i + 1; j <= i + N&&j<len; j++)//重中之重,控制j在数组中的范围,我被 //这个点快气死了 { if (c[j]>c[t]) t = j; } int k = 0; for (k = t; k>i; k--) { std::swap(c[k],c[k-1]); } N = N - (t - i); i++; } printf("%s\n",c); } return 0;}
0 0
- 寻找最大数(三)
- 寻找最大数(三)
- 寻找最大数(三)
- 寻找最大数(三)
- 寻找最大数(三)
- 寻找最大数(三)
- 寻找最大数(三)
- 寻找最大数(三)
- 寻找最大数(三)
- 寻找最大数(三)
- 寻找最大数(三)
- 寻找最大数(三)
- NYOJ 寻找最大数(三)
- nylgacm_1057_寻找最大数(三)
- nyoj 1057 寻找最大数(三)
- 1411211909-ny-寻找最大数(三)
- NYOJ 寻找最大数(三)
- nyoj 1057 寻找最大数(三)
- 解决import _tkinter时提示ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
- Spark
- Java集合概述
- K
- Android秒级编译方案-FreeLine
- 寻找最大数(三)
- 乘法
- 常见排序算法
- 数据结构与算法(3)——单链表
- 【C++】冒泡排序的C++实现
- ubuntu安装好后需要做的几件小事_总结帖
- 二进制转换
- 安卓学习(textview+LinearLayout实现导航栏)
- Mjpg-streamer