水2

来源:互联网 发布:.net开发的网站源码 编辑:程序博客网 时间:2024/05/01 19:06

贪心水题,给一串0-1的数,外加m个转换ij位置值的机会,求能得到的最小值

#include<iostream>#include<cstdio>#include<cstring>using namespace std;char s[10000];int n;int main(){    int t;    char a = 'a';    int k = 0;    scanf("%d",&t);    while(t--)    {        scanf("%s%d",s,&n);        if(n>=1)        {            a = s[0],k = 0;            for(int i = 0; s[i]; i++)            {                if(s[i]=='0')continue;                if(a>s[i])                {                    a = s[i];                    k = i;                }            }            if(k!=0)            {                s[k] = s[0];                s[0] = a;                n--;            }        }        int d = 1;        while(n>0)        {            if(!s[d])break;            while(s[d]=='0')d++;            a = s[d];            k = d;            for(int j = d; s[j];j++)            {                if(a>=s[j])                {                    a = s[j];                    k = j;                }            }            if(k != d)            {                s[k] = s[d];                s[d] = a;                n--;            }            d++;        }        printf("%s\n",s);    }    return 0;}
0 0
原创粉丝点击