虽然过了但是不懂
  • 板块P2111 考场奇遇
  • 楼主hyx761
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/24 22:27
  • 上次更新2024/7/25 08:43:45
查看原帖
虽然过了但是不懂
1101603
hyx761楼主2024/7/24 22:27

rt,我之前的代码:

#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了

所以它在卡精度?

2024/7/24 22:27
加载中...