关于DEV上运行正确,但是交上去全输出 0 的问题。

P2481 [SDOI2010] 代码拍卖会

```cpp #include<iostream> #include<cstring> #include<cstdio> #define LL long long using namespace std; const int mod = 999911659; LL n; int p; int f[20][15][2][501]; int s[100]; LL qsm(LL x,LL y) { LL base = x; LL sum = 1; while(y) { if(y & 1) sum = sum * base; base = base * base; y >>= 1; } return sum; } LL dfs(int id,int last,int limit,int k) { if(!id) return !k ? 1 : 0; if(~f[id][last][limit][k] && !limit) return (f[id][last][limit][k] + mod ) % mod; int up = limit ? s[id] : 9; LL ans = 0; for(int i = 1;i <= up;i ++) { if(i < last) continue; int h = (k * 10 + i) % p; ans += (dfs(id - 1,i,limit && (i == up),h) + mod) % mod; } if(!limit) f[id][last][limit][k] = (ans + mod) % mod; return ans; } LL work(LL d) { int cnt = 0; memset(f, -1, sizeof f); for(;d;d /= 10) s[++ cnt] = d % 10; return dfs(cnt,0,1,0) % mod; } int main() { // freopen("4041.in","r",stdin); // freopen("4041.ans","w",stdout); cin >> n >> p; LL m = qsm(10,n); //cout << m << endl; LL ans = work(m - 1); cout << (ans + mod) % mod << endl; return 0; } ```
by 斜揽残箫 @ 2021-02-06 18:58:04


@[斜揽残箫](/user/381904) 不一定您输出是0啊 就好比正确答案是`114514` 结果你输出的是`114510` 那评测姬就会返回`read 0, expected 4`
by int64 @ 2021-02-06 19:06:37


如果你能写点能看懂的..我兴许还能看出来
by Durancer @ 2021-02-06 19:06:53


@[斜揽残箫](/user/381904) ```cpp 100 5 YOUR ANS:0 AC ANS:4421275 ```
by 天南星魔芋 @ 2021-02-06 19:07:25


@[_钻剑君_](/user/360331) 评测姬返回的事 `On line 1 column 1, read 0, expected XXX` 啊
by CGDGAD @ 2021-02-06 19:09:24


@[天南星魔芋](/user/399239) 奥,原来是我看错数据范围了,我把 n 看成了 18 。。。
by 斜揽残箫 @ 2021-02-06 19:10:27


此贴完结。。。
by 斜揽残箫 @ 2021-02-06 19:11:06


谢谢各位
by 斜揽残箫 @ 2021-02-06 19:11:51


@[NSObject](/user/357545) 啊,眼瞎(
by int64 @ 2021-02-06 19:13:26


@[斜揽残箫](/user/381904) 和我第一次一样,以为就是个水dp,结果。。。
by abruce @ 2021-02-06 19:42:02


|