BZOJ 2134 单选错位

ANS=Σ1/max(a[i],a[i%n+1])。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 10000050
using namespace std;
int n,A,B,C,a[maxn];
double ans=0;
int main()
{
    scanf("%d%d%d%d%d",&n,&A,&B,&C,&a[1]);
    for (register int i=2;i<=n;i++) a[i]=((long long)a[i-1]*A+B)%100000001;
    for (register int i=1;i<=n;i++) a[i]=a[i]%C+1;
    for (register int i=1;i<=n-1;i++) ans+=1.0/max(a[i],a[i+1]);
    ans+=1.0/max(a[1],a[n]);
    printf("%.3lf\n",ans);
    return 0;
}
时间: 2025-01-06 23:29:27

BZOJ 2134 单选错位的相关文章

BZOJ 2134: 单选错位( 期望 )

第i个填到第i+1个的期望得分显然是1/max(a[i],a[i+1]).根据期望的线性性, 我们只需将每个选项的期望值累加即可. --------------------------------------------------------------------------- #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 10000009; int a[maxn];

BZOJ 2134 单选错位 ——期望DP

发现概率是∑1/两道题答案相同的概率, 稍加化简 #include <map> #include <ctime> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define F(i,j,k)

BZOJ 2134 单选错位 期望DP

题目大意:给定一张n道选择题的试卷,所有答案都是正确的,但是第i个题的答案被答到了第i%n+1个位置上,求期望得分 第i道题的答案被填到了第i%n+1个位置上 期望得分是1/max(a[x],a[i%n+1]) 然后就水了233 #include <cstdio> #include <cstring> #include <iostream> #define M 10001000 #include <algorithm> using namespace std

【BZOJ】2134: 单选错位

[算法]期望DP [题意]有n道题,第i道题有ai个选项.一个人把所有的正确答案填到了后面一题上(特殊的,当i=n的时候填到1上),问他期望做对几道题? [题解]每道题的期望与其他题目的期望无关. 对于每道题,有ai-1个可能的选项,ai个可能正确选项,共有ai-1ai种组合,其中只有Min(ai-1,ai)种组合是正确的,则期望是E[i]=Min(ai-1,ai)/ai-1ai=1/Max(ai-1,ai). E(x)=ΣE[i](线性) #include<cstdio> #include&

bzoj2134单选错位

bzoj2134单选错位 题意: 试卷上n道选择题,每道分别有ai个选项.某人全做对了,但第i道题的答案写在了第i+1道题的位置,第n道题答案写在第1题的位置.求期望能对几道.n≤10000000 题解: 水题,然而我不会.第i题与第i+1题答案一样的概率是1/max(aiai+1) 代码: 1 #include <cstdio> 2 #include <algorithm> 3 using namespace std; 4 5 int a[10000010],n,A,B,C; 6

BZOJ_2134_单选错位——期望DP

BZOJ_2134_单选错位——期望DP 题意: 分析:设A为Ai ∈ [1,ai+1] 的概率,B为Ai = A(imodn+1)的概率显然P(A|B) = 1,那么根据贝叶斯定理P(B) = P(B|A)*P(A)P(A) = min(ai,ai+1)/aiP(B|A) = 1/a(i+1)P(B) = min(ai,ai+1)/(ai*a(i+1))又因为期望的可加性,直接加起来统计答案 代码: #include <stdio.h> #include <string.h> #

单选错位

单选错位 [问题描述] gx和lc去参加noip初赛,其中有一种题型叫单项选择题,顾名思义,只有一个选项是正确答案.试卷上共有n道单选题,第i道单选题有ai个选项,这ai个选项编号是1,2,3,-,ai,每个选项成为正确答案的概率都是相等的.lc采取的策略是每道题目随机写上1-ai的某个数作为答案选项,他用不了多少时间就能期望做对道题目.gx则是认认真真地做完了这n道题目,可是等他做完的时候时间也所剩无几了,于是他匆忙地把答案抄到答题纸上,没想到抄错位了:第i道题目的答案抄到了答题纸上的第i+1

[补档][国家集训队2011]单选错位

题目 gx和lc去参加noip初赛,其中有一种题型叫单项选择题,顾名思义,只有一个选项是正确答案. 试卷上共有n道单选题,第i道单选题有ai个选项,这ai个选项编号是1,2,3,-,ai,每个选项成为正确答案的概率都是相等的.lc采取的策略是每道题目随机写上1-ai的某个数作为答案选项,他用不了多少时间就能期望做对sigma(1/ai)道题目.gx则是认认真真地做完了这n道题目,可是等他做完的时候时间也所剩无几了,于是他匆忙地把答案抄到答题纸上,没想到抄错位了:第i道题目的答案抄到了答题纸上的第

BZOJ2134 单选错位

= =是道沙茶题,直接模拟即可... 1 /************************************************************** 2 Problem: 2134 3 User: rausen 4 Language: C++ 5 Result: Accepted 6 Time:1292 ms 7 Memory:78932 kb 8 ****************************************************************