社区讨论
虽然过了但是不懂
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 条回复,欢迎继续交流。
正在加载回复...