ACM--贪心--FZU--2111--Min Number
来源:互联网 发布:软件测试脚本 编辑:程序博客网 时间:2024/06/05 11:14
FZU题目地址:http://acm.fzu.edu.cn/problem.php?pid=2111
Accept: 802 Submit: 1587
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
Now you are given one non-negative integer n in 10-base notation, it will only contain digits ('0'-'9'). You are allowed to choose 2 integers i and j, such that: i!=j, 1≤i<j≤|n|, here |n| means the length of n’s 10-base notation. Then we can swap n[i] and n[j].
For example, n=9012, we choose i=1, j=3, then we swap n[1] and n[3], then we get 1092, which is smaller than the original n.
Now you are allowed to operate at most M times, so what is the smallest number you can get after the operation(s)?
Please note that in this problem, leading zero is not allowed!
Input
The first line of the input contains an integer T (T≤100), indicating the number of test cases.
Then T cases, for any case, only 2 integers n and M (0≤n<10^1000, 0≤M≤100) in a single line.
Output
Sample Input
Sample Output
=============================傲娇的分割线==============================
题意:给你一个数n,和交换次数m,要求经过m次交换之后的最小的数是多少,不能有前导零。
#include <iostream> #include <cstring> #include <algorithm> using namespace std; int main(){ char num[2000]; int i,j,n,m,len,index; cin>>n; while(n--){ cin>>num; cin>>m; len=strlen(num); if(m!=0){//m为1的情况要单独考虑 for(i=0,index=0;i<len;i++){ if(num[i]<num[index]&&num[i]!='0'){ index=i; } } //如果后面有数比num[0]小就进行交换 if(num[0]>num[index]){ //交换 swap(num[0],num[index]); //交换次数-1 m--; } } //从第二位开始找 for(i=1;i<len&&m!=0;i++){ //查找最小值 for(j=i,index=j;j<len;j++){ if(num[j]<num[index]){ index=j; } } //交换 if(num[i]>num[index]){ swap(num[i],num[index]); m--; } } //打印最后的交换结果 cout<<num<<endl; } return 0; }
参考博客:http://blog.csdn.net/whjkm/article/details/45921931
- ACM--贪心--FZU--2111--Min Number
- fzu 2111 Min Number 贪心
- fzu 2111 Min Number(贪心)
- FZU - 2111 Min Number(贪心)
- FZU OJ 2111 Min Number (贪心)
- FZU 2111 Min Number
- FZU 2111Min Number
- FZU 2111 Min Number
- FZU - 2111 Min Number
- FZU 2111【 Min Number】
- FZU 2111 Min Number
- FZU-2111-Min Number
- FZU Problem 2111 Min Number
- fzu 2111 Min Number 搜索
- FZU 2111J - Min Number
- FZU 2111 Min Number (想法题)
- 构造(FZU 2111,Min Number)
- FZU Problem 2111 Min Number (数学啊 )
- ACM第二专题—搜索总结
- 利用求值器绘制三次Bezier曲线
- 红黑树并没有我们想象的那么难(下)
- HashMap学习
- 插入排序
- ACM--贪心--FZU--2111--Min Number
- Makefile经典教程(掌握这些足够)
- 堆排序
- 指针数组和数组指针的内存布局
- Spring 代码中执行事务回滚
- mysql客户端工具使用
- static全局变量与普通的全局变量的区别详细解析
- PHP学习01----PHP简介
- Android控件ListView