[2019杭电多校第七场][hdu6656]Kejin Player
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6656
题意为从i级花费a元有p的概率升到i+1级,有1-p的概率降到x级(x<i),查询从L级升到R级的花费期望。
菜鸡才知道期望是有可加性的QAQ,即1-5的期望==1-2的期望+2-5的期望。
如果明确这一点就可以比较轻松的推出转移方程.....阿勒?
感觉和我往常见得有点不一样啊QAQ。
按照以往的思路,我会设dp[i]为i到n的期望,则转移方程为$dp[i]=p*dp[i+1]+(1-p)*dp[x[i]]+a[i]$
然后....就没有然后了,只能暴力跑高斯消元了。
可是按照以往的套路来说,不是会有很棒的化简方式使得式子可以直接退出来吗。
所以去巨佬们的博客学习一番后回来搞了搞。
大致的思路是这样的,先设f[i]表示从第i级到第i+1级的期望,dp[i]表示从第1级到第i级的期望,对于f[i] ,有p的概率交钱直接变成i+1,有(1-p)的概率回到x级,那么回到x级后想要升级到i+1,需要dp[i]-dp[x]升回到i级,再+f[i]到i+1级,则转移方程为$f[i]=p*a[i]+(1-p)*(dp[i]-dp[x[i]]+f[i]+a[i])$
涨姿势了QAQ
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<string> 5 #include<algorithm> 6 using namespace std; 7 typedef long long ll; 8 const int maxn = 5e5 + 10; 9 const ll mod = 1e9 + 7; 10 const ll qpow(ll a, ll b) { 11 ll ans = 1; 12 while (b) { 13 if (b & 1) 14 ans = a * ans%mod; 15 a = a * a%mod; 16 b /= 2; 17 } 18 return ans; 19 } 20 ll r[maxn], s[maxn], x[maxn], a[maxn], dp[maxn]; 21 int main() { 22 int t; 23 scanf("%d", &t); 24 while (t--) { 25 int n, q; 26 scanf("%d%d", &n, &q); 27 for (int i = 1; i <= n; i++) 28 scanf("%lld%lld%lld%lld", &r[i], &s[i], &x[i], &a[i]); 29 for (int i = 1; i <= n; i++) { 30 ll p = r[i] * qpow(s[i], mod - 2) % mod; 31 ll pp = qpow(p, mod - 2) % mod; 32 ll f = (a[i] + (1 + mod - p) % mod*(dp[i] + mod - dp[x[i]]) % mod) % mod*pp%mod; 33 dp[i + 1] = (dp[i] + f) % mod; 34 } 35 while (q--) { 36 int l, r; 37 scanf("%d%d", &l, &r); 38 printf("%lld\n", (dp[r] - dp[l] + mod) % mod); 39 } 40 } 41 }
转载于:https://www.cnblogs.com/sainsist/p/11396501.html
[2019杭电多校第七场][hdu6656]Kejin Player相关推荐
- 杭电多校第七场 1011 Kejin Player HDU(6656)
杭电多校第七场 1011 Kejin Player 题意:给你N行,代表从i级有花费a[i]元的r[i]/s[i]的概率达到i+1级,剩下的概率中可能会到达x[i]级.然后询问从L级到R级的花费会是多 ...
- 2019杭电多校第7场 K Kejin Player HDU 6656(数学推导)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6656 题目大意:对于每一个等级,可以花ai元,有pi概率升级,如果升级失败就退到xi级,问从li级升到 ...
- 2019杭电多校 第七场 Kejin Player 6656(求期望值)
2019杭电多校 第七场 Kejin Player 6656(求期望值) 题目 http://acm.hdu.edu.cn/showproblem.php?pid=6656 题意 给你n,q.表示有n ...
- 2019杭电多校第七场 HDU - 6656 Kejin Player 期望
题目链接:https://vjudge.net/problem/HDU-6656 题解: 维护一个前缀sum[i] : 从1到 i 的期望 第 i 到达 i + 1是:ai + (1 - r[i] / ...
- 2019杭电多校第七场 HDU - 6656 Kejin Player——概率期望
题意 总共有 $n$ 层楼,在第 $i$ 层花费 $a_i$ 的代价,有 $pi$ 的概率到 $i+1$ 层,否则到 $x_i$($x_i \leq 1$) 层.接下来有 $q$ 次询问,每次询问 $ ...
- 2019杭电多校第七场 Kejin Player HDU - 6656 (期望)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6656 题意:一种游戏,从i级升到i+1级,需要氪金a[i]RMB,有的概率成功,有1-的概率变成x[i ...
- 2019HDU多校第七场 HDU6656 Kejin Player H 【期望递归】
一.题目 Kejin Player H 二.分析 因为在当前等级$i$,如果升级失败可能会退回到原来的某一等级$x$,相当于就是失败的期望就是$E + (Sum[i-1] - Sum[x-1]) + ...
- 2019杭电多校第9场1002 Rikka with Cake HDU6681
2019杭电多校第9场1002 Rikka with Cake HDU6681 题意:给你若干个点按上下左右切割平面,最后问平面内有几块被切割开来. 解法1:红黑树+思维+贪心 A:根据欧拉定理可以得 ...
- 【2019.08.21】2019杭电多校第十场
补题地址:http://acm.hdu.edu.cn/listproblem.php?vol=58 题号:6691-6701 1001: 1002: 1003:✅ 1004: 1005:✅ 1006: ...
- 2019 杭电多校第六场 题解
比赛记录 注意随机数据 ,1-n排列这种,一般都有啥暴力重构之类的方法,期望重构次数很少之类的 1005也是这样,因为n^2但只有n个值有数,所以就可以n^2logn 题解 1001 Salty Fi ...
最新文章
- DVWA-暴力破解-对‘g0tmi1k’文章的学习笔记
- 【Openstack】实录手动部署Openstack Rocky 双节点(2)- Keystone
- java jpa更新数据_Java如何使用JPA更新实体对象?
- python埋点测试_测试一面(宇宙条)
- springboot2.0入门(helloworld)
- Android SDK 更新时修改hosts文件仍然无法更新,可试试这个方法……
- VPP电源控制(VPP Power)-- 由DC-DC变换集成电路MC34063组成
- AD导入原理图库PCB库文件 最强原理图PCB库
- 2021年软件测试工具总结——测试管理工具
- Java GUI+MySQL 银行管理系统初级(课程设计)
- 作业车间调度算法及其应用(一)
- 7-5 华氏度转摄氏度(四舍五入) (5分)
- matlab 安装coder工具包,matlab coder 工具箱使用教程
- 操作系统:作业调度算法--短作业优先
- html设置成电脑桌面背景,电脑桌面背景怎么更换 电脑桌面背景不能设置怎么办...
- STM32(CM3内核) 内存映射
- 个人怎么创建微信公众号?
- 鼠标处显示坐标 html,cesium的鼠标事件(最基础的显示鼠标位置坐标)
- WHM系列:WHM数据迁移(WHM→WHM)
- python3.8安装mayavi4.7.3
热门文章
- cygwin清屏技巧
- 精选 | 2018年4月R新包推荐
- android官方素材,android Studio 中文社区
- Win2008r2 由ESXi 转换到 HyperV的处理过程
- EventBus 发布/订阅 机制的 java 实现
- 线段树、前缀数组:HDU1591-Color the ball(区间更新、简单题)
- 《算法竞赛入门经典》习题及反思 -2
- Xcode6中自动布局autolayout和sizeclass的使用
- [Node.js] BDD和Mocha框架
- [大牛翻译系列]Hadoop(7)MapReduce:抽样(Sampling)