3,6,9WA

#include <iostream>
using namespace std;
long long cnt[10000001],n,x,sum;
int main(){
    cin>>n>>x;
    cnt[0]=0;
    cnt[x]=1;
    for(int i=0;i<=n;i++){
        cnt[i]=cnt[i%10];
        cnt[i]+=cnt[i/10];
        sum+=cnt[i];
    }
    cout<<sum<<endl;
    return 0;
}

1 条评论

  • @ 2016-12-12 21:12:33
    如果x=0,i=1 dp[1] = dp[0]+dp[1]
    但1没有0,这样就过了:
    #include <cstdio>
    int dp[10000001],n,x,sum = 0;
    int main() {
        scanf("%d%d",&n,&x);
        dp[x] = 1;
        for (int i = 1;i <= n;i++) {
            dp[i] = dp[i%10];
            if (i/10) dp[i] += dp[i/10];
            sum += dp[i];
        }
        printf("%d",sum);
        return 0;
    }
    
    • @ 2017-03-28 19:45:27

      我已经过了,谢啦!
      但是还有一个疑问,为什么加上
      if(i/10)
      就可以筛掉x=0的情况?
      求解释。

    • @ 2017-03-31 09:04:20

      @BillyYong:
      if (i/10) 表示 if(i/10 != 0) 也可以改成 if(i >= 10)
      1~9只有x为一

  • 1

信息

ID
1848
难度
5
分类
(无)
标签
递交数
16396
已通过
5730
通过率
35%
被复制
33
上传者