4 条题解

  • 1
    @ 2023-7-28 16:58:09

    #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long const int N = 1e6+10; const int INF = 0x3f3f3f3f; #define mod 1e9+7 int a[20],dp[20][2]; int dfs(int pos,int pre,int limit){ if(pos==-1)return 1; if(!limit&&dp[pos][pre6]!=-1)return dp[pos][pre6]; int tmp=0; int up=limit?a[pos]:9; for(int i=0;i<=up;i++){ if(pre6&&i2)continue; if(i4)continue; tmp+=dfs(pos-1,i,limit&&ia[pos]); } if(!limit)dp[pos][pre==6]=tmp; return tmp; } int solve(int x){ int pos=0; while(x){ a[pos++]=x%10; x/=10; } return dfs(pos-1,-1,true); } int main(){ //freopen("","r",stdin); //freopen("","w",stdout); int ri,le; while(~scanf("%d %d",&ri,&le)&&ri+le){ memset(dp,-1,sizeof(dp)); printf("%d \n",solve(le)-solve(ri-1)); } return 0; }

    信息

    ID
    483
    时间
    1000ms
    内存
    512MiB
    难度
    5
    标签
    递交数
    88
    已通过
    33
    上传者