?!
by Zoe_888 @ 2023-08-04 22:27:22
@[Zoe_888](/user/556181) 帮忙看看
by kimi0705 @ 2023-08-04 22:33:17
@[kimi0705](/user/637788)
您差的不止0.001啊。
`dp[i][0]` 的初始值没有设置,过滤换行符要用 `scanf("\n");`,windows和linux下换行符有区别,以及最好不要用百分数记录概率。
还有,标题想干嘛?
粗略的改了一下
```
#include <bits/stdc++.h>
using namespace std;
const int N = 10005;
int n, q;
bool arr[N];
double a, ans, dp[2][N];
signed main() {
cin >> n >> a >> q;
a /= 100;
scanf("\n");
for (int i = 1; i <= n; i++) arr[i] = getchar() - '0';
dp[0][0] = 1;
for (int i = 1; i <= n; i++) {
dp[i & 1][0] = dp[(i - 1) & 1][0] * (arr[i] ? 1 - a : a);
for (int j = 1; j <= n; j++) {
dp[i & 1][j] = (dp[(i - 1) & 1][j] * (arr[i] ? 1 - a : a) + dp[(i - 1) & 1][j - 1] * (arr[i] ? a : 1 - a));
}
}
for (int i = q; i <= n; i++) ans += dp[n & 1][i];
printf("%.3f", ans);
return 0;
}
```
by lxdp @ 2023-08-04 22:51:50
@[lxdp](/user/517291) ```scanf("\n")```啸到了,```scanf(" ")```表示这什么玩意儿
by gongziwen @ 2023-08-27 17:24:26