[Codeforces 1265E]Beautiful Mirrors
Description
一共有 \(n\) 个关卡,你初始在第一个关卡。通过第 \(i\) 个关卡的概率为 \(p_i\)。每一轮你可以挑战一个关卡。若通过第 \(i\) 个关卡,则进入第 \(i+1\) 个关卡,否则重新回到第 \(1\) 个关卡。通过第 \(n\) 个关卡则算成功。问期望多少轮游戏才能成功。
\(1\leq n\leq 2\cdot 10^5\)
Solution
设从第 \(i\) 个关卡通关的期望为 \(E_i\)。显然
\[
E_i=p_i(E_{i+1}+1)+(1-p_i)(E_1+1)
\]
特别地,\(E_{n+1}=0\),且答案为 \(E_1\)。
那么有
\[
E_1=p_1(E_2+1)+(1-p_1)(E_1+1)\Rightarrow E_1=\frac{1}{p_1}+E_2
\]
同理将上述式子代入
\[
E_2=p_2(E_3+1)+(1-p_2)(E_2+1)\Rightarrow E_1=\frac{1+\frac{1}{p_1}}{p_2}+E_3
\]
继续推导可以发现答案为
\[
E_1=\frac{1+\frac{1+\frac{1+\cdots}{p_{n-2}}}{p_{n-1}}}{p_n}
\]
Code
#include <bits/stdc++.h>
using namespace std;
const int yzh = 998244353;
int quick_pow(int a, int b) {
int ans = 1;
while (b) {
if (b&1) ans = 1ll*ans*a%yzh;
b >>= 1, a = 1ll*a*a%yzh;
}
return ans;
}
int main() {
int ans = 0, p, n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &p);
ans = (ans+1)%yzh;
ans = 1ll*ans*100%yzh*quick_pow(p, yzh-2)%yzh;
}
printf("%d\n", ans);
return 0;
}
[Codeforces 1265E]Beautiful Mirrors的更多相关文章
- Codeforces 1264C/1265E Beautiful Mirrors with queries (概率期望、DP)
题目链接 http://codeforces.com/contest/1264/problem/C 题解 吐槽:为什么我赛后看cf的题就经常1h内做出Div.1 C, 一打cf就动不动AB题不会啊-- ...
- Codeforces - 1264C - Beautiful Mirrors with queries - 概率期望dp
一道挺难的概率期望dp,花了很长时间才学会div2的E怎么做,但这道题是另一种设法. https://codeforces.com/contest/1264/problem/C 要设为 \(dp_i\ ...
- Codeforces 55D Beautiful Number
Codeforces 55D Beautiful Number a positive integer number is beautiful if and only if it is divisibl ...
- CodeForces 55D "Beautiful numbers"(数位DP+离散化处理)
传送门 参考资料: [1]:CodeForces 55D Beautiful numbers(数位dp&&离散化) 我的理解: 起初,我先定义一个三维数组 dp[ i ][ j ][ ...
- Codeforces 55D. Beautiful numbers(数位DP,离散化)
Codeforces 55D. Beautiful numbers 题意 求[L,R]区间内有多少个数满足:该数能被其每一位数字都整除(如12,24,15等). 思路 一开始以为是数位DP的水题,觉得 ...
- Codeforces Round #604 (Div. 2) E. Beautiful Mirrors
链接: https://codeforces.com/contest/1265/problem/E 题意: Creatnx has n mirrors, numbered from 1 to n. E ...
- Codeforces Round #604 (Div. 2) E. Beautiful Mirrors 题解 组合数学
题目链接:https://codeforces.com/contest/1265/problem/E 题目大意: 有 \(n\) 个步骤,第 \(i\) 个步骤成功的概率是 \(P_i\) ,每一步只 ...
- codeforces div2_604 E. Beautiful Mirrors(期望+费马小定理)
题目链接:https://codeforces.com/contest/1265/problem/E 题意:有n面镜子,你现从第一面镜子开始询问,每次问镜子"今天我是否美丽",每天 ...
- Codeforces Round #604 (Div. 1) - 1C - Beautiful Mirrors with queries
题意 给出排成一列的 \(n\) 个格子,你要从 \(1\) 号格子走到 \(n\) 号格子之后(相当于 \(n+1\) 号格子),一旦你走到 \(i+1\) 号格子,游戏结束. 当你在 \(i\) ...
随机推荐
- status 和 typedef
- Dubbo使用javassist生成动态类
在服务(本地和远程)暴露的时候会调用proxyFactory.getInvoker方法 具体位置: 本地暴露:ServiceConfig#exportLocal line:538 远程暴露: Serv ...
- 你也可以写个聊天程序 - C# Socket学习1
原文:你也可以写个聊天程序 - C# Socket学习1 简述 我们做软件工作的虽然每天都离不开网络,可网络协议细节却不是每个人都会接触和深入了解.我今天就来和大家一起学习下Socket,并写一个简单 ...
- IOWebSocketChannel.connect handle errors
https://github.com/dart-lang/web_socket_channel/issues/38 yes, my workaround is to create a WebSocke ...
- JAVA基础之DBUtils与连接池
利用DBUtils进一步简化JDBC数据库的增删改查的代码,同时利用从连接池中接取连接,进而进行简化和减少资源的消耗! 一.DBUtils: 1.DBUtils就是JDBC的简化开发工具包.需要项目导 ...
- 财政FINAUNCE英文FINAUNCE金融
中文名金融 外文名Finance.Finaunce 概括为货币的发行与回笼 从事金融机构有银行.信托投资公司 目录 1 基本定义 2 关于概念 ? 概念新解 ? 概念现状 ? 熊德平新解 3 金融特征 ...
- VS2017 密钥
需要的请自取- Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH
- java-ExceptionHandler全局异常处理
springmvc配置文件: <!-- 定义全局异常处理,只有一个全局异常处理器起作用 --> <bean id="exceptionResolver" clas ...
- form组件 初始化
class MyForm(Form): user = fields.ChoiceField( # choices=((1, '上海'), (2, '北京'),), initial=2, widget= ...
- 小米8seroot后更改hosts文件记录
1.先备份原有文件,在设置中有个备份与恢复,可以备份,备份后链接电脑,传电脑上 2.下载开发版miui,安装 3.解bl锁,先到官网申请,按照提示操作. 4.备份文件传到手机,恢复文件 5.获得roo ...