题意

总共有 $n$ 层楼,在第 $i$ 层花费 $a_i$ 的代价,有 $pi$ 的概率到 $i+1$ 层,否则到 $x_i$($x_i \leq 1$) 层。接下来有 $q$ 次询问,每次询问 $l$ 层到 $j$ 层的期望代价。

分析

这种期望具有可加性,因此,维护一个前缀和 $sum[i]$:从 $1$ 到 $i$ 的期望。

设从 $i$ 到 $i+1$ 的期望代价为 $E$,则有

$E = a_i + (1-\frac{r_i}{s_i})(sum[i]-sum[x_i]+E)$

解得 $E = [s_ia_i + (s_i-r_i)(sum[i]-sum[x_i])]/r_i$

#include <bits/stdc++.h>
using namespace std;typedef long long ll;
const ll mod = 1e9 + 7;
const int maxn = 500000 + 10;
ll sum[maxn];
int n, q;ll qpow(ll a, ll b)
{ll ret = 1;while(b){if(b&1)  ret = ret * a % mod;a = a *a % mod;b >>= 1;}return ret;
}
ll inv(ll x)
{return qpow(x, mod-2);
}//第i层到第i+1层的期望
void getE(ll i, ll ri, ll si, ll ai, ll xi)
{ll e = si * ai % mod;e = (e + (si - ri) * (sum[i] - sum[xi]) % mod);e = e * inv(ri) % mod;e = (e + mod) % mod;sum[i+1] = (sum[i] + e) % mod;
}int main()
{int T;scanf("%d", &T);while(T--){scanf("%d%d", &n, &q);for(int i = 1;i <= n;i++){ll ri, si, xi, ai;scanf("%lld%lld%lld%lld", &ri, &si, &xi, &ai);getE(i, ri, si, ai, xi);}for(int i = 0;i < q;i++){int l, r;scanf("%d%d", &l, &r);printf("%lld\n", (sum[r] - sum[l] + mod) % mod);}}
}

参考链接:https://blog.csdn.net/mmk27_word/article/details/99472953

转载于:https://www.cnblogs.com/lfri/p/11360441.html

2019杭电多校第七场 HDU - 6656 Kejin Player——概率期望相关推荐

  1. 2019杭电多校第七场 HDU - 6656 Kejin Player 期望

    题目链接:https://vjudge.net/problem/HDU-6656 题解: 维护一个前缀sum[i] : 从1到 i 的期望 第 i 到达 i + 1是:ai + (1 - r[i] / ...

  2. 2019杭电多校 第七场 Kejin Player 6656(求期望值)

    2019杭电多校 第七场 Kejin Player 6656(求期望值) 题目 http://acm.hdu.edu.cn/showproblem.php?pid=6656 题意 给你n,q.表示有n ...

  3. 2019杭电多校第七场 Kejin Player HDU - 6656 (期望)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6656 题意:一种游戏,从i级升到i+1级,需要氪金a[i]RMB,有的概率成功,有1-的概率变成x[i ...

  4. 杭电多校第七场 1011 Kejin Player HDU(6656)

    杭电多校第七场 1011 Kejin Player 题意:给你N行,代表从i级有花费a[i]元的r[i]/s[i]的概率达到i+1级,剩下的概率中可能会到达x[i]级.然后询问从L级到R级的花费会是多 ...

  5. 2019杭电多校第9场1002 Rikka with Cake HDU6681

    2019杭电多校第9场1002 Rikka with Cake HDU6681 题意:给你若干个点按上下左右切割平面,最后问平面内有几块被切割开来. 解法1:红黑树+思维+贪心 A:根据欧拉定理可以得 ...

  6. 【2019.08.21】2019杭电多校第十场

    补题地址:http://acm.hdu.edu.cn/listproblem.php?vol=58 题号:6691-6701 1001: 1002: 1003:✅ 1004: 1005:✅ 1006: ...

  7. 2019 杭电多校第六场 题解

    比赛记录 注意随机数据 ,1-n排列这种,一般都有啥暴力重构之类的方法,期望重构次数很少之类的 1005也是这样,因为n^2但只有n个值有数,所以就可以n^2logn 题解 1001 Salty Fi ...

  8. 2019杭电多校第三场 6608 Fansblog(威尔逊定理+miller_rabin素性测试)

    Problem Description 传送门 Farmer John keeps a website called 'FansBlog' .Everyday , there are many peo ...

  9. 2019 杭电 多校第3场 1006 Fansblog (HDU 6608)

    题目链接 题解: 用威尔逊定理变换,然后求逆元. 代码: #include <bits/stdc++.h> using namespace std; typedef long long l ...

最新文章

  1. Web网站搭建从零到一
  2. Win7让你的程序变得更加漂亮,同样的程序在Win7操作系统下的效果对比
  3. 解决AJAX跨域WCF的问题详解
  4. First Scrum 冲刺
  5. 查看网关物理地址命令
  6. (转载)关于My97 datepicker与Angular ng-model绑定问题解决。
  7. 无人值守网络安装Linux
  8. 《一天聊一个设计模式》 单例
  9. 【优化算法】蛾群优化算法(MSA)【含Matlab源码 1451期】
  10. 【机器学习-周志华】学习笔记-第十章
  11. Unity3D 2D贴图 与 帧动画
  12. 【原创】JAVA入门之猜拳小游戏
  13. 和威金作者的聊天记录 (附:VIKING专杀及杀毒思路)
  14. 开发板与PC直连还是交叉,关于直连网线交叉网线做法
  15. 线性回归实战:股价预测(未完)
  16. Nessus访问报错(Corrupt Database A corrupt database has been detected which prevents Nessus from........)
  17. 高效、稳定、可复用——手机淘宝主会场框架详解
  18. 算法提高 素数环 java 题解 977
  19. 坚持自己的坚持,以不二的姿态坚持到底
  20. 【游戏程序设计】二维游戏示例-回合制Demo

热门文章

  1. yum配置文件 重启后还原_电脑里重启后,重启前所有设置都还原到以前了,怎么办啊...
  2. php.符号,特殊符号大全
  3. Linux 音频驱动(四) ASoC音频驱动之Machine驱动
  4. W7计算机名称原名,w7系统版本名称与区别
  5. C#简单调用FMU ,进行仿真计算
  6. 硬盘突然变raw格式_硬盘变成raw格式的解决方法详解
  7. 计算机绘画小房子教案,小班美术《我家的房子》教案
  8. 情人节程序员用HTML网页表白【可爱的节日贺卡ui动画特效】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  9. win10 状态栏图标变成白色方块
  10. 收录CTF MISC方向中使用的在线工具网站