题目链接:https://codeforces.com/contest/1265/problem/E

题意:有n面镜子,你现从第一面镜子开始询问,每次问镜子“今天我是否美丽”,每天可以询问一次,第 i 面镜子回答“美丽”的可能性是Pi/100,如果第i面镜子回答的是美丽,那么第下一天继续询问第i + 1面镜子。如果第i面镜子回答的是“不美丽”,那么下一天你将重新从第1面镜子询问。如此过程直到所有的镜子都回答“美丽”才算结束,求所有镜子都回答“美丽”所花费天数的期望值。

思路:首先第i面镜子回答“美丽”的概率是Pi/100,那么通过这一天所花费的期望就是100/Pi,假设到前i-1天所花费的期望天数是t,那么前i天所花费的期望就是(t+1)*(100/Pi),t+1是因为从第i-1天到第i天需要一天,再乘以100/Pi是期望值的计算。

那么因为题意是要求天数在mod = M的剩余集下,所以我们所求的100/Pi设为x,则 x = (100/Pi)%M,x = 100*pi^(-1)%M,移项得,x*Pi ≡ 100%M,

我们把100提出来,求一下x1 * Pi ≡ 1 %M,最后求得的x1再乘100%M就是x了,即x = x1*100%M,求解x1的过程用费马小定理即可。因为M是素数,且M和Pi必定互素,所以有Pi*Pi^(M-2)≡1%M(费马小定理),x1 = Pi^(M-2),这里用快速幂即可计算出x1.

AC代码:

#include<iostream>
#include<stack>
#include<vector>
#include<algorithm>
#include<cmath>
#include<queue>
#include<cstring>
using namespace std;
typedef long long ll;
const int mod = 998244353;
ll quick_pow(ll a,ll x){
ll res = 1;
while(x){
if(x&1) res = res*a%mod;
a = a*a%mod;
x>>=1;
}
return res;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;cin>>n;
ll res = 0;
for(int i = 0;i<n;i++){
ll t;
cin>>t;
t = 100*quick_pow(t,mod-2)%mod;//计算x1 = Pi^(M-2) ,x1*100%M = x
res = (res+1)*t%mod;
}
cout<<res;
return 0;
}

codeforces div2_604 E. Beautiful Mirrors(期望+费马小定理)的更多相关文章

  1. Codeforces.919E.Congruence Equation(同余 费马小定理)

    题目链接 \(Description\) 给定a,b,x,p,求[1,x]中满足n*a^n ≡b (mod p) 的n的个数.\(1<=a,b<p\), \(p<=1e6+3\), ...

  2. Codeforces Round #460 (Div. 2).E 费马小定理+中国剩余定理

    E. Congruence Equation time limit per test 3 seconds memory limit per test 256 megabytes input stand ...

  3. CodeForces 300C Beautiful Numbers(乘法逆元/费马小定理+组合数公式+高速幂)

    C. Beautiful Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  4. Codeforces 919E Congruence Equation ( 数论 && 费马小定理 )

    题意 : 给出数 x (1 ≤ x ≤ 10^12 ),要求求出所有满足 1 ≤ n ≤ x 的 n 有多少个是满足 n*a^n  = b ( mod p ) 分析 : 首先 x 的范围太大了,所以使 ...

  5. hdu 4704 Sum (整数和分解+快速幂+费马小定理降幂)

    题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7).其中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3.                  ...

  6. nyoj1000_快速幂_费马小定理

    又见斐波那契数列 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 斐波那契数列大家应该很熟悉了吧.下面给大家引入一种新的斐波那契数列:M斐波那契数列. M斐波那契数列 ...

  7. poj 3734 Blocks 快速幂+费马小定理+组合数学

    题目链接 题意:有一排砖,可以染红蓝绿黄四种不同的颜色,要求红和绿两种颜色砖的个数都是偶数,问一共有多少种方案,结果对10007取余. 题解:刚看这道题第一感觉是组合数学,正向推了一会还没等推出来队友 ...

  8. 数论初步(费马小定理) - Happy 2004

    Description Consider a positive integer X,and let S be the sum of all positive integer divisors of 2 ...

  9. 【BZOJ1951】【SDOI2010】古代猪文 Lucas定理、中国剩余定理、exgcd、费马小定理

    Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边 ...

随机推荐

  1. 【47】迁移学习(Transfer Learning)

    迁移学习(Transfer Learning) 如果你要做一个计算机视觉的应用,相比于从头训练权重,或者说从随机初始化权重开始,如果你下载别人已经训练好网络结构的权重,你通常能够进展的相当快,用这个作 ...

  2. 【新人赛】阿里云恶意程序检测 -- 实践记录 11.24 - word2vec模型 + xgboost

    使用word2vec训练词向量 使用word2vec无监督学习训练词向量,输入的是训练数据和测试数据,输出的是每个词的词向量,总共三百个词左右. 求和:然后再将每行数据中的每个词的词向量加和,得到每行 ...

  3. Lucene使用IKAnalyzer分词

    1.分析器    所有分析器最终继承的类都是Analyzer        1.1 默认标准分析器:StandardAnalyzer            在我们创建索引的时候,我们使用到了Index ...

  4. JN_0014:win10命令窗口以管理员方式启动

    1,先打开命令窗口 2,固定到任务栏 3,右键任务栏图标 4,右键命令提示符, 5,选择以管理员方式启动.

  5. WebGL_0003:正则表达式查找字符串

    1,查找字符串,中间是变化的 files/assets/.*?/1/ .*? 表示中间是人一个字符

  6. easyUI footer 的格式渲染

    网上好多的例子,但是自己使用的情况下还是出现bug.比如以下代码: var myview = $.extend({}, $.fn.datagrid.defaults.view, { renderFoo ...

  7. AI数学基础:符号

    1.sigma 表达式 ∑ 是一个求和符号,英语名称:Sigma,汉语名称:西格玛(大写Σ,小写σ) 第十八个希腊字母.在希腊语中,如果一个单字的最末一个字母是小写sigma,要把该字母写成 ς ,此 ...

  8. A Bug's Life____并查集

    English preparation: falsify     伪造:篡改:歪曲:证明...虚假 the sexual behavior of a rare species of bugs. 一种稀 ...

  9. 1级搭建类109-Oracle 12cR2 SI FS(Windows Server 2019)公开

    Oracle 12cR2 单实例文件系统在Windows Server 2019上的安装 在线查看

  10. First Kernel-pwn

    Kernel pwn-极简题目的操作模式 完全参照M4x师傅的指导,用 hacklu的baby kernel迈了第一步 题目附带文件说明 一般题目会给出bzImage,.cpio, .sh文件 sh文 ...