[ BZOJ 2134 ] 单选错位
\(\\\)
\(Description\)
一共\(N\)道题目,第\(i\)道题有\(A_i\)个选项,现在有一个人做完了所有题目,但将每一道题的答案都写到了下一道题的位置\((\)第\(N\)道写到了第一道的位置\()\),现在这个人的选项和每道题的正确答案对于每一个选项均为随机,求这个人做对的题目数的期望。
- \(N\in [1,10^7]\)
\(\\\)
\(Solution\)
第\(i\)个位置选择了合法的第\(i+1\)个位置的概率,即选了一个范围在\([1,A_{i+1}]\)范围内的数的概率,是\(\frac{min(A_i,A_{i+1})}{A_i}\)。
选对的概率是\(\frac{1}{A_{i+1}}\),所以第\(i\)个位置做对了第\(i+1\)道题的概率是\(\frac{min(A_i,A_{i+1})}{A_i\times A_{i+1}}=\frac{1}{max(A_i,A_{i+1})}\)。
根据期望的线性性,做对题目总数的期望等于做对每一道题的期望之和,而做对一道题的贡献是\(1\),所以是做对每一道题的概率之和,求出来每一道的概率之后直接求和就好。
\(\\\)
\(Code\)
#include<cmath>
#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 10000010
#define R register
#define gc getchar
using namespace std;
typedef long long ll;
inline int rd(){
int x=0; bool f=0; char c=gc();
while(!isdigit(c)){if(c=='-')f=1;c=gc();}
while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=gc();}
return f?-x:x;
}
int n,A,B,C,a[N];
int main(){
n=rd(); A=rd(); B=rd(); C=rd(); a[1]=rd();
for(R int i=2;i<=n;i++) a[i]=((ll)a[i-1] * A + B) % 100000001;
for(R int i=1;i<=n;i++) a[i] = a[i]%C+1;
double ans=1.0/(double)max(a[1],a[n]);
for(R int i=2;i<=n;++i) ans+=1.0/(double)max(a[i],a[i-1]);
printf("%.3lf\n",ans);
return 0;
}
[ BZOJ 2134 ] 单选错位的更多相关文章
- BZOJ 2134: 单选错位( 期望 )
第i个填到第i+1个的期望得分显然是1/max(a[i],a[i+1]).根据期望的线性性, 我们只需将每个选项的期望值累加即可. ---------------------------------- ...
- bzoj 2134 单选错位(期望)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2134 [题意] ai与ai+1相等得1分,求期望. [思路] 每个题的期望都是独立的. ...
- BZOJ——2134: 单选错位
http://www.lydsy.com/JudgeOnline/problem.php?id=2134 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: ...
- 【刷题】BZOJ 2134 单选错位
Description Input n很大,为了避免读入耗时太多, 输入文件只有5个整数参数n, A, B, C, a1, 由上交的程序产生数列a. 下面给出pascal/C/C++的读入语句和产生序 ...
- BZOJ 2134 单选错位 ——期望DP
发现概率是∑1/两道题答案相同的概率, 稍加化简 #include <map> #include <ctime> #include <cmath> #include ...
- 【BZOJ】2134: 单选错位 期望DP
[题意]有n道题,第i道题有ai个选项.把第i道题的正确答案填到第i+1道题上(n填到1),问期望做对几道题.n<=10^7. [算法]期望DP [题解]正确答案的随机分布不受某道题填到后面是否 ...
- Bzoj 2134: [国家集训队2011]单选错位(期望)
2134: 单选错位 Time Limit: 10 Sec Memory Limit: 259 MB Description Input n很大,为了避免读入耗时太多,输入文件只有5个整数参数n, A ...
- BZOJ2134 luoguP1297 [国家集训队]单选错位
单选错位 [问题描述] gx和lc去参加noip初赛,其中有一种题型叫单项选择题,顾名思义,只有一个选项是正确答案.试卷上共有n道单选题,第i道单选题有ai个选项,这ai个选项编号是1,2,3,…,a ...
- BZOJ_2134_单选错位——期望DP
BZOJ_2134_单选错位——期望DP 题意: 分析:设A为Ai ∈ [1,ai+1] 的概率,B为Ai = A(imodn+1)的概率显然P(A|B) = 1,那么根据贝叶斯定理P(B) = P( ...
随机推荐
- Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了
insertSelective---Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了 https://www.cnblogs.com/xi ...
- 一些非常有用的工具类之javamail(from韩顺平)
之前编写一个类淘宝服务器时,需要使用javamail发送邮件,搜到的一个工具类,很有用. 需要下载导入:activation.jar和mail.jar package com.cx.service; ...
- MySQL: 打开binlog选项后无法重启MySQL
binlog目录权限不足导致,用chown mysql:mysql <log folder>即可解决此问题.
- MVC路由中特殊URL匹配规则
*匹配*用来匹配URL剩余部分 贪婪匹配规则贪婪匹配会找到最后一个符合条件的“字面量”为止
- Codeforces 577E Ann and Half-Palindrome 字典树
题目链接 题意: 若一个字符串是半回文串.则满足第一位和最后一位相等, 第三位和倒数第三位相等.如此类推. 给定一个字符串s,输出s的全部子串中的半回文串字典序第k大的 字符串. good[i][j] ...
- 百练1088:滑雪 【DP】+【DFS】
总Time Limit: 1000ms Memory Limit: 65536kB Description Michael喜欢滑雪百这并不奇怪, 由于滑雪的确非常刺激.但是为了获得速度,滑的区域必须向 ...
- openGl学习之基本图元
从本篇開始,会给出一些代码实例,所以要配置好编译环境. 环境配置: vs2012下配置链接http://www.cnblogs.com/dreampursuer/archive/2014/05/27/ ...
- BC - Zball in Tina Town (质数 + 找规律)
Zball in Tina Town Accepts: 541 Submissions: 2463 Time Limit: 3000/1500 MS (Java/Others) Memory ...
- Android开源框架ViewPageIndicator和ViewPager实现Tab导航
前言: 关于使用ViewPageIndicator和ViewPager实现Tab导航,在开发社区里已经有一堆的博客对其进行了介绍,假设我还在这里写怎样去实现.那简直就是老生常谈,毫无新奇感,并且.我也 ...
- 《Head First 设计模式》学习笔记——代理模式
设计模式 代理模式:为还有一个对象提供一个替身或占位符以控制对这个对象的訪问. 使用代理模式创建代表对象,让代表对象控制某对象的訪问,被代理的对象能够使远程的对象(远程代理).创建开销大的对象(虚拟代 ...