社区讨论

虽然过了但是不懂

P2111考场奇遇参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lyzxx2pn
此快照首次捕获于
2024/07/24 22:28
2 年前
此快照最后确认于
2024/07/25 08:43
2 年前
查看原帖
rt,我之前的代码:
CPP
#include <bits/stdc++.h>
using namespace std;
int n, q;
double a, f[100][100], ans;
char ch;
int main()
{
    cin >> n >> a >> q;
    a /= 100.0;
    if (n > 50) {cout << "1.000"; return 0;}
    f[0][0] = 1;
    for (int i = 1; i <= n; i++)
    {
        cin >> ch;
        for (int j = 1; j <= i; j++)
        {
            if (ch == '0') f[i][j] = f[i - 1][j] * a + f[i - 1][j - 1] * (1 - a);
            else f[i][j] = f[i - 1][j] * (1 - a) + f[i - 1][j - 1] * a;
        }
    }
    for (int i = q; i <= n; i++) ans += f[n][i];
    cout << fixed << setprecision(3) << ans;
    return 0;
}
只有30分(大题答案类似,都是小数点后第2或3位的问题)
但当我把第15行的int j = 0改成了int j = 1后,就可以AC了
所以它在卡精度?

回复

0 条回复,欢迎继续交流。

正在加载回复...