$\Huge{求改精度}$

P2111 考场奇遇

?!
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


|