Luogu_P1297 [ナショナルチーム]ラジオ転位確率の期待

Luogu_P1297 [ナショナルチーム]ラジオ脱臼

###予想

トピックリンク
ことが望ましいが、各寄与はしているが(1 \)を\ので、確率がある
\(a_iをが\)\(A_ {I + 1} \) の分類を議論する
場合、\(a_iを= A_ {I + 1 } \)次いで明らか確率(\ \ FRAC {1} {
a_iを} = \ FRAC {1} {a_iを+ 1} \) であれば\(a_iを> A_ {iが+ 1} \) のみ(\ \ FRAC { A_ {I + 1}} { a_iを} \) 確率は有用であるかもしれない、と正解の確率であること\(\ FRAC {A_ {I + 1}} {a_iを} * \ FRAC {1} {A_ {I + 1} } = \ FRAC {1} {
a_iを} \) であれば\(a_iを<A_ {I + 1} \) 次に\(a_iを\)全ての潜在的に有用な、使用可能な確率の\(1 \)が、応答確率されている\(1 * \ FRAC {1
} {A_ {iは、+ 1} = \ FRAC {1} {A_ {I + 1}} \) 我々はこれら三つがマージ
される\(ANS = \和^ { N} _ {i = 1}
{1} {maxの\ FRAC(a_iを、A_が{iは、+ 1})} \) することができる(\ 1 \)または\(N- \)判定オフ


コードは以下の通りであります:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e7+10;
ll a[maxn];
int n,A,B,C;
double ans=0;
int main()
{
    scanf("%d%d%d%d%d",&n,&A,&B,&C,a+1);
    for(int i=2;i<=n;i++) a[i]=((long long)a[i-1]*A+B)%100000001;
    for(int i=1;i<=n;i++) a[i]=a[i]%C+1;
    ans+=(double)1.0/max(a[1],a[n]);
    for(int i=2;i<=n;i++){
        ans+=(double)1.0/max(a[i],a[i-1]);
    }
    printf("%.3lf",ans);
    return 0;
}

おすすめ

転載: www.cnblogs.com/ChrisKKK/p/11701034.html
おすすめ