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

题目

http://acm.hdu.edu.cn/showproblem.php?pid=6656

题意

给你n,q。表示有n个等级,q次询问。
接下来n行有r, s, x, a四个数据表示小明从上一级升到下一级需要a经验,有r/s的几率成功,如果失败就回到第x级。(小明一开始是1级)
后面还有q行,问你从L级升到R级需要多少经验?
答案还需要模109+7.

题解

我们可以用前缀和的方式求出到每级所需要的钱。
升级所需要花费的钱数 = (a+tmp【从x级升到i-1级需要的经验】)*(s-r)*r-(这里要求逆元)取模再加a。
把花费a成功的概率当作单位1。

代码

#include<iostream>
#include<string.h>
using namespace std;
#define ll long long
#define mem(a,b) memset(a,b,sizeof(a))
const int mod = 1e9 + 7;
const int maxn = 1e6 + 5;
ll qpow(ll a,ll n)
{ll ans = 1;while(n){if(n&1)ans = ans*a%mod;a = a*a%mod;n >>= 1;}return ans;
}
ll sum[maxn];
int T,n,q;
int main()
{scanf("%d",&T);while(T--){mem(sum,0);scanf("%d %d",&n,&q);for(int i = 1;i<=n;i++){ll r,s,x,a;scanf("%lld %lld %lld %lld",&r,&s,&x,&a);ll tmp = (sum[i - 1] - sum[x - 1] + mod) % mod;//从x级升到i-1级需要的经验 sum[i] = (a+tmp) %mod * (s - r) %mod * qpow(r,mod-2) % mod;sum[i] = (sum[i] + a %mod) %mod;sum[i] = (sum[i] + sum[i-1]) %mod;}for(int i = 1;i<=q;i++){ll l,r;scanf("%lld %lld",&l,&r);printf("%lld\n",(sum[r-1] - sum[l-1] + mod)%mod);}}return 0;
}

2019杭电多校 第七场 Kejin Player 6656(求期望值)相关推荐

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

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

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

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

  3. 2019杭电多校第七场 HDU - 6656 Kejin Player——概率期望

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

  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. 毕业典礼上,硕士情侣现场求婚!校长也被甜到全程“姨母笑”
  2. free是自由,不是免费,从王开源说起
  3. LeetCode-337 House Robber III
  4. python调用系统api_Python调用系统底层API播放wav文件的方法
  5. MCtalk 创业声音丨辉禹科技合伙人孔杰:投资和创业都是思维的放大器
  6. 年轻——塞缪尔.厄尔曼
  7. 马踏棋盘算法(骑士周游)
  8. linux 网络dma驱动,S3C2410的Linux下DMA驱动程序开发
  9. Linux内核深入理解中断和异常(6):IRQs的非早期初始化
  10. linux下两个线程交替打印,两个线程交替打印AB
  11. 奇迹s12源码_muserver 奇迹MU服务端VC++源码 适合研究 的朋友 Game Simulator 模拟 器 269万源代码下载- www.pudn.com...
  12. token是什么意思
  13. [读书笔记]Spring中的容器设计详解
  14. Java单元测试之JUnit 5快速上手
  15. Admob ANE for Flash Air最新中文教程
  16. 求助威纶通触摸屏与三菱PLC程序
  17. 数据结构——前序线索二叉树及其前序遍历
  18. 微信开发者工具 当前系统代理不是安全代理,是否信任?问题之完美解决
  19. 猪猪女孩有多蠢,猫爪杯就有多火
  20. 对数据库三大范式及BC范式的理解

热门文章

  1. Redis-狂神笔记-菜鸟风闲整理
  2. 进入JavaScript
  3. JavaScript从初级往高级走系列————prototype
  4. Win7 的安全快捷键使用技巧
  5. Linux 下如何压缩/解压缩文件
  6. 二进制LDPC码的构造及译码算法
  7. 践行数字化工厂,用友网络助力宝舜实现智能制造
  8. 解决 i5 6500 安装黑苹果 Sierra 显卡不正常问题
  9. 2022 第十四届蓝桥杯模拟赛第一期(题解与标程)
  10. qps多少才算高并发_要大到什么程度?才算高并发?