洛谷 1106 删数问题 贪心

来源:互联网 发布:晋城行知教育怎么样 编辑:程序博客网 时间:2024/06/06 07:27

题目:
https://www.luogu.org/problem/show?pid=1106

一年前的坑,填一下;

有点坑;

注意需要过滤0;

还有记得给bool值赋初值;

#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>using namespace std;char g[10001];int k,len,tot;int s[10001];void swap(int &a,int &b) {a^=b^=a^=b;return;}void solve(){    scanf("%s%d",g+1,&k);    len=strlen(g+1);    for(int i=1;i<=len;i++) s[i]=g[i]-'0';    while(true)    {        bool flag=0;//没有赋初值,导致T了一组;        if(tot==k) break;        for(int i=1;i<=len;i++)            if(s[i]>s[i+1])            {                flag=1,tot++,len--;                for(int j=i;j<=len;j++) swap(s[j],s[j+1]);                break;            }        if(!flag) tot++,len--;    }    int sta=1;    while(!s[sta] && sta<len) sta++;    for(int i=sta;i<=len;i++) cout<<s[i];    return;}int main(){    solve();    return 0;}
原创粉丝点击