QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#766890#7962. 前缀和EZGGTL 1ms4128kbC++23909b2024-11-20 19:08:062024-11-20 19:08:07

Judging History

This is the latest submission verdict.

  • [2024-11-20 19:08:07]
  • Judged
  • Verdict: TL
  • Time: 1ms
  • Memory: 4128kb
  • [2024-11-20 19:08:06]
  • Submitted

answer

#include<bits/stdc++.h>

using namespace std;

double logC(int n, int k) {
    return lgamma(n + 1) - lgamma(k + 1) - lgamma(n - k + 1);
}

double negative_binomial_pmf(int k, int r, double p) {
    if (k < r) return 0.0;
    double log_pmf = logC(k - 1, r - 1) + r * log(p) + (k - r) * log(1 - p);
    return exp(log_pmf);
}

double negative_binomial_cdf(int k, int r, double p) {
    double cdf = 0.0;
    for (int i = r; i <= k; i++) {
        cdf += negative_binomial_pmf(i, r, p);
    }
    return cdf;
}

int main() {
    int n, l, r;
    double p;
    cin >> n >> p >> l >> r;
    double expected = 0.0;
    for (int i = 1; i <= n; i++) {
        double prob_l = negative_binomial_cdf(l - 1, i, p);
        double prob_r = negative_binomial_cdf(r, i, p);
        expected += prob_r - prob_l;
    }
    cout <<fixed<<setprecision(10)<< expected << endl;
    return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 4128kb

input:

3 0.5 1 2

output:

1.0000000000

result:

ok found '1.0000000', expected '1.0000000', error '0.0000000'

Test #2:

score: 0
Accepted
time: 0ms
memory: 4088kb

input:

1 0.529148 1 1

output:

0.5291480000

result:

ok found '0.5291480', expected '0.5291480', error '0.0000000'

Test #3:

score: -100
Time Limit Exceeded

input:

1000000000 0.592692 495948205 808386938

output:


result: