NYOJ 1057 寻找最大数(三)
来源:互联网 发布:听音识谱软件手机 编辑:程序博客网 时间:2024/05/24 06:18
寻找最大数(三)时间限制:1000 ms | 内存限制:65535 KB难度:2描述 给出一个整数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> int main(){ char temp,str[20]; int k,len,mark,flag,j; while(scanf("%s %d",str,&k)!=EOF){ len=strlen(str); if(k==0) { puts(str); continue; } for(int i=0;i<len;i++){ temp=str[i],flag=1; for(j=i+1;j<=i+k&&j<len;j++){//贪心,从i+1到i+k寻找最大的数 并记录下序号 if(str[j]>temp) temp=str[j],mark=j,flag=0; } if(!flag){ for(int q=mark;q>i;q--)//一步一步相邻的交换。。第一次以为直接两个数交换位置,结果错了。。 temp=str[q],str[q]=str[q-1],str[q-1]=temp; k=k-mark+i; } if(k==0) break; } puts(str); } 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
- Windows位图和调色板,bmp文件格式
- 欢迎使用CSDN-markdown编辑器
- UDP要注意的地方
- vb创建excel报48错误解决方法
- 公式的上下标在MathType中该如何对齐
- NYOJ 1057 寻找最大数(三)
- 欢迎使用CSDN-markdown编辑器
- 指针函数和函数指针区别
- Linux设置和查看环境变量的方法
- Maven分布式项目构建详解
- 解决System进程PID 4 占用80端口的问题
- 黑马程序员——java基础——集合框架(二)
- JAVA学习(八):JAVA文件编程
- UE4 Textures