牛客网多校第9场 E Music Game 【思维+数学期望】
题目:戳这里
题意:鼠标点击n下,第i次点击成功的概率为p[i],连续点击成功x次可以获得x^m分,求n次点击总分数的数学期望。
解题思路:数学期望的题很多都需要转化思维,求某一个单独状态对整体答案的贡献。这主要是利用了期望的可加性。
即:E(X+Y)=E(X)+E(Y);
比如在这题中,第2到3次连续点击成功,则意味着状态为0110....,后面的(...)所有情况概率和为1,也就是说影响第2到3次点击成功的因素只有前四次点击。
这样我们就可以预处理出所有段对答案的贡献,最后遍历一遍求和即可。
附ac代码:
1 #include <cstdio>
2 #include <cstdlib>
3 #include <iostream>
4 #include <cstring>
5 #include <algorithm>
6 #include <cmath>
7 #include <queue>
8 #include <vector>
9 #include <string>
10 #include <map>
11 #include <set>
12 using namespace std;
13 typedef long long ll;
14 const ll mod = 1e9 + 7;
15 const int maxn = 1e3 + 10;
16 ll p[maxn];
17 ll sc[maxn];
18 ll pre[maxn][maxn];
19 ll pmul(ll a, ll b)
20 {
21 ll res = 0;
22 while(b)
23 {
24 if(b&1)
25 res = (res + a) % mod;
26 b >>= 1;
27 a = (a + a) % mod;
28 }
29 return res;
30 }
31 ll pmod(ll a, ll b)
32 {
33 ll res = 1;
34 while(b)
35 {
36 if(b&1)
37 res = pmul(res, a) % mod;
38 b >>= 1;
39 a = pmul(a, a) % mod;
40 }
41 return res;
42 }
43 ll exgcd(ll a, ll b, ll &x, ll &y)
44 {
45 if(a == 0 && b == 0) return -1;
46 if(b == 0)
47 {
48 x = 1;y = 0;
49 return a;
50 }
51 ll d = exgcd(b, a % b, y, x);
52 y -= a/b*x;
53 return d;
54 }
55 ll mod_rev(ll a, ll n)
56 {
57 ll x, y;
58 ll d = exgcd(a, n, x, y);
59 if(d == 1) return (x % n + n) % n;
60 else return -1;
61 }
62 int main()
63 {
64 ll n, m;
65 ll inv = mod_rev(100ll, mod);
66 // printf("%lld\n", inv);
67 scanf("%lld %lld", &n, &m);
68 for(ll i = 1; i <= n; ++i)
69 {
70 scanf("%lld", &p[i]);
71 sc[i] = pmod(i, m) % mod;
72 // printf("%lld sc\n", sc[i]);
73 }
74 for(ll i = 1; i <= n; ++i)//预处理每一段的贡献
75 {
76 pre[i][i] = p[i] * inv % mod;
77 for(ll j = i + 1; j <= n; ++j)
78 {
79 pre[i][j] = pre[i][j - 1] * p[j] % mod * inv % mod;
80 }
81 }
82 ll ans = 0;
83 for(ll i = 0; i < n; ++i)//遍历求贡献和
84 {
85 for(ll j = i + 2; j <= n + 1; ++j)
86 {
87 ans += pre[i + 1][j - 1] * sc[j - i - 1] % mod * (100ll - p[i]) % mod * inv % mod * (100ll - p[j]) % mod * inv % mod;
88 ans %= mod;
89 }
90 }
91 printf("%lld\n", ans % mod);
92
93 }
牛客网多校第9场 E Music Game 【思维+数学期望】的更多相关文章
- 牛客网多校第5场 F take 【思维+数学期望】
题目:戳这里 思路来源:视频讲解 题意:有n个箱子按1...n标号,每个箱子有大小为di的钻石概率为pi,我们初始有个大小为0的钻石,从1到n按顺序打开箱子,遇到比手中大的箱子就换,求交换次数的数学期 ...
- 牛客网多校第3场C-shuffle card 平衡树或stl(rope)
链接:https://www.nowcoder.com/acm/contest/141/C 来源:牛客网 题目描述 Eddy likes to play cards game since there ...
- 牛客网多校第3场Esort string (kmp)
链接:https://www.nowcoder.com/acm/contest/141/E 来源:牛客网 题目描述 Eddy likes to play with string which is a ...
- 牛客网多校赛第九场A-circulant matrix【数论】
链接:https://www.nowcoder.com/acm/contest/147/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...
- 牛客网多校训练第二场D Kth Minimum Clique
链接:https://ac.nowcoder.com/acm/contest/882/D来源:牛客网 Given a vertex-weighted graph with N vertices, fi ...
- 牛客网多校第5场 H subseq 【树状数组+离散化】
题目:戳这里 学习博客:戳这里 题意:给n个数为a1~an,找到字典序第k小的序列,输出该序列所有数所在位置. 解题思路:先把所有序列预处理出来,方法是设一个数组为dp,dp[i]表示以i为开头的序列 ...
- 牛客网多校第5场 I vcd 【树状数组+离散化处理】【非原创】
题目:戳这里 学习博客:戳这里 作者:阿狸是狐狸啦 n个点,一个点集S是好的,当且仅当对于他的每个子集T,存在一个右边无限延长的矩形,使的这个矩形包含了T,但是和S-T没有交集. 求有多少个这种集合. ...
- 牛客网多校第4场 J Hash Function 【思维+并查集建边】
题目链接:戳这里 学习博客:戳这里 题意: 有n个空位,给一个数x,如果x%n位数空的,就把x放上去,如果不是空的,就看(x+1)%n是不是空的. 现在给一个已经放过数的状态,求放数字的顺序.(要求字 ...
- 牛客网多校第4场 A.Ternary String 【欧拉降幂】
题目:戳这里 学习博客:戳这里 欧拉函数的性质: ① N是不为0的整数.φ(1)=1(唯一和1互质的数就是1本身) ② 除了N=2,φ(N)都是偶数. ③ 小于N且与N互质的所有数的和是φ(n)*n/ ...
- 牛客网多校训练第一场 J - Different Integers(树状数组 + 问题转换)
链接: https://www.nowcoder.com/acm/contest/139/J 题意: 给出n个整数的序列a(1≤ai≤n)和q个询问(1≤n,q≤1e5),每个询问包含两个整数L和R( ...
随机推荐
- 使用CDN访问免备案网站
如何使用CDN绕过服务器域名备案 前言 不得不说,大陆需要备案,时间真的有点长,至少得5天~20天起步,对于我们这些火急火燎的站长还是比较难受的.这里教大家如何使用cdn绕过备案, 访问速度很快,亲测 ...
- 【linux】系统编程-7-网络编程
目录 前言 10. 网络编程 10.1 简要网络知识 10.2 IP协议 10.2.1 IP地址编址 10.2.2 特殊IP地址 10.2.1 首限广播地址 10.2.2 直接广播地址 10.2.3 ...
- floating point
记录浮点数的单精度和双精度(IEEE754) 1.单精度(float) 1.定义:单精度占4字节/32位,其中1号位符号位,其次是8位阶码/指数(阶符+阶数),23位尾数(小数). 2.双精度(d ...
- uni-app通过canvas实现手写签名
分享一个uni-app实现手写签名的方法 具体代码如下: <template> <view > <view class="title">请在下面 ...
- jackson学习之二:jackson-core
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- CSS奇思妙想 -- 使用 CSS 创造艺术
本文属于 CSS 绘图技巧其中一篇.之前有过一篇:在 CSS 中使用三角函数绘制曲线图形及展示动画 想写一篇关于 CSS 创造艺术的文章已久,本文主要介绍如何借助 CSS-doodle ,利用 CSS ...
- C++ /Python 将视频中的片段转为图片
配置OpenCV :项目名称->右击->属性 VC++目录 包含目录 放 ...\build\include ...\build\include\opencv ...\build\ ...
- 华为交换机telnet登录时老是提醒是否更改初始密码- Warning: The initial password poses security risks
问题:华为交换机在Telnet登录的时候总是提示初始密码不安全需要修改密码的处理方法 Warning: The initial password poses security risks 如果你输 ...
- etcd 性能优化实践
https://mp.weixin.qq.com/s/lD2b-DZyvRJ3qWqmlvHpxg 从零开始入门 K8s | etcd 性能优化实践 原创 陈星宇 阿里巴巴云原生 2019-12-16 ...
- 9.5 自定义包和可见性 go mod
the-way-to-go_ZH_CN/09.5.md at master · Unknwon/the-way-to-go_ZH_CN https://github.com/Unknwon/the-w ...