把别人的AC代码复制上去都是错的,我真的是无语
by Bz_QC @ 2023-12-02 22:18:39
@[2023080106Czq](/user/1102411) 我看前两篇题解都没问题,你是指啥
by cff_0102 @ 2023-12-02 22:26:53
@[2023080106Czq](/user/1102411) 你不是错第三个,且报错说你输出的第一个字符是1,而正确的是9吗
by cff_0102 @ 2023-12-02 22:29:03
@[2023080106Czq](/user/1102411) 评测机是字符比较的,他说的0是指数字里面有某一位为0
by _zzzzzzy_ @ 2023-12-02 22:31:40
@[cff_0102](/user/542457) 我复制了几个人的代码,全都是第三个错了,前面8次都是报错为0,后面我什么都几乎没改,把prime数组赋了个初值就莫名其妙的过了,我真是搞不懂
by Bz_QC @ 2023-12-02 22:33:12
@[2023080106Czq](/user/1102411) 你的prime数组定义在主函数内,导致它会被随机赋值,加上评测机也是评测过上亿评测的,不可能在清空一段内存给你(除非你定义在主函数外)
by cff_0102 @ 2023-12-02 22:35:09
@[cff_0102](/user/542457) 应该是的,但我应该试过这种情况,现在去看不知道又为什么没有,可能那次没编译,谢谢解惑!
by Bz_QC @ 2023-12-02 22:41:33
```
#include<bits/stdc++.h>
#define kkksc03yyds kkksc03();
using namespace std;
const int N = 1e4 + 10, M = 1e7 + 10;
long long v[N], dp[M], xxs[N], cnt;
bool a[N];
void kkksc03() {
for (int i = 2; i <= 200; i++) {
if (!a[i]) {
v[cnt] = i;
cnt++;
for (int j = i; j <= 200; j += i) {
a[j] = 1;
}
}
}
}
int main() {
kkksc03yyds
int n;
while (cin >> n) {
dp[0] = 1;
for (int i = 0; i < cnt; i++) {
for (int j = v[i]; j <= n; j++) {
dp[j] += dp[j - v[i]];
}
}
cout << dp[n]<<'\n';
memset(dp,0,sizeof(dp));
}
return 0;
}
```
[双倍经验](1832)
by xyy_xxyy @ 2024-03-13 19:33:57