这题 没有想到 是 贪心的算法.
所以和队友两个人一直卡在这里.
一直用其中一个队友的方法,卡了一小时多,回来以后继续写,卡在另外一个地方.
感觉就是自己的思路太狭窄了...可能因为不是很认真吧..
或许比赛的时候就不一样了..
福州OJ的测试数据太弱了..就不写优化了.
优化就是拿到最小值,接下来就不比了..
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 #define maxn 1005 6 char c[maxn]; 7 int main() 8 { 9 int T,m,len,p,mi,t; 10 //freopen("2111.txt","r",stdin); 11 scanf("%d",&T); 12 while(T--) 13 { 14 scanf("%s%d",c,&m); 15 len=strlen(c); 16 for(int i=0;i<len&&m;i++) 17 { 18 p=-1;mi=c[i]; 19 for(int j=i;j<len;j++) 20 if(mi>c[j]&&(c[j]!='0'||i)) //i=0 不能换 21 { 22 mi=c[j]; 23 p=j; 24 } 25 if(p!=-1) 26 { 27 t=c[p]; 28 c[p]=c[i]; 29 c[i]=t; 30 m--; 31 } 32 } 33 printf("%s ",c); 34 } 35 return 0; 36 } 37