FZU 2111 Min Number

这题 没有想到 是 贪心的算法.

所以和队友两个人一直卡在这里.

一直用其中一个队友的方法,卡了一小时多,回来以后继续写,卡在另外一个地方.

感觉就是自己的思路太狭窄了...可能因为不是很认真吧..

或许比赛的时候就不一样了..

福州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\n",c);  
34     }  
35     return 0;  
36 }  
37         

 

转载于:https://www.cnblogs.com/xiaoniuniu/p/4082610.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值