QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#55067#1777. Fortune From FollyMIT01#WA 1ms3748kbC++1.7kb2022-10-12 08:32:182022-10-12 08:32:18

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-10-12 08:32:18]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3748kb
  • [2022-10-12 08:32:18]
  • 提交

answer

#include <bits/stdc++.h>
#define ll long long
#define mp make_pair
#define fi first
#define se second
#define pb push_back
#define vi vector<int>
#define pi pair<int, int>
#define maxn 500005
#define mod 998244353
template<typename T> bool chkmin(T &a, T b){return (b < a) ? a = b, 1 : 0;}
template<typename T> bool chkmax(T &a, T b){return (b > a) ? a = b, 1 : 0;}
ll ksm(ll a, ll b) {if (b == 0) return 1; ll ns = ksm(a, b >> 1); ns = ns * ns % mod; if (b & 1) ns = ns * a % mod; return ns;}
using namespace std;
#define db long double
const int S = 70;
db res[S][S];
db cof[S][S];
int main() {
    int n, k;
    db p;
    cin >> n >> k >> p;
    const int md = (1 << n) - 1;
    for (int i = 0; i <= md; i++) {
        if (__builtin_popcount(i) >= k)
            res[i][i] = 1, 
            res[i][md + 1] = 0;
        else {
            res[i][i] = 1,
            res[i][md + 1] = -1,
            res[i][((i << 1) + 1) & md] -= p,
            res[i][(i << 1) & md] -= (1 - p);
        }
    }
    for (int j = 0; j <= md; j++) {
        for (int k = j; k <= md; k++) 
            if (res[k][j]) {
                for (int u = 0; u <= md + 1; u++)
                    swap(res[j][u], res[k][u]);
                break;
            }
        for (int i = 0; i <= md; i++) {
            if (i == j) continue;
            db cof = res[i][j] / res[j][j];
            for (int k = 0; k <= md + 1; k++)
                res[i][k] -= cof * res[j][k];
        }
    }
    db ans = res[0][md + 1] / res[0][0]; ans *= -1;
    printf("%.10lf\n", ans);
    return 0;
}
/*
3
3 6 1 1 4 1 2 2 4 9 1 4 2 3 3 2 4 1 10 14 10 8 1 6 2 5 4 2 5 5 8 9 2 7 6 8 6 5 7 4
*/

詳細信息

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 3748kb

input:

2 1 0.0006

output:

0.0000000000

result:

wrong answer 1st numbers differ - expected: '1666.6666667', found: '0.0000000', error = '1.0000000'