fzu 2111 Min Number 贪心

来源:互联网 发布:听评书软件 编辑:程序博客网 时间:2024/05/16 00:26

做法:可以用贪心,每次交换都把最小的换到前面,记得第一位不可以为0

#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int LMT=1003;char sec[LMT];int main(){    int T,m,len,p,mi,t;    scanf("%d",&T);    while(T--)    {        scanf("%s%d",sec,&m);        len=strlen(sec);        for(int i=0;i<len&&m;i++)        {            p=-1;mi=sec[i];            for(int j=i;j<len;j++)            if(mi>sec[j]&&(sec[j]!='0'||i))            {                mi=sec[j];                p=j;            }            if(p!=-1)           {            t=sec[p];            sec[p]=sec[i];            sec[i]=t;            m--;           }        }        printf("%s\n",sec);    }    return 0;}