[CF538B]Quasi Binary

来源:互联网 发布:公仔用什么软件画 编辑:程序博客网 时间:2024/06/18 12:21

题目大意

懒得写

做法

这样的数只有2^6个。
因此暴力DP

#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;i--)using namespace std;const int maxn=1000000+10;int f[maxn],g[maxn],sta[maxn];int i,j,k,l,t,n,m,top;bool czy;int main(){    scanf("%d",&n);    fo(i,1,n){        czy=1;        k=i;        while (k){            if (k%10>1) czy=0;            k/=10;        }        if (czy) sta[++top]=i;    }    f[0]=0;    fo(i,1,n){        f[i]=n+1;        fo(j,1,top){            if (i<sta[j]) break;            if (f[i-sta[j]]+1<f[i]){                f[i]=f[i-sta[j]]+1;                g[i]=sta[j];            }        }    }    printf("%d\n",f[n]);    while (n){        printf("%d ",g[n]);        n-=g[n];    }}
原创粉丝点击