2019杭电多校 第七场 Kejin Player 6656(求期望值)
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(求期望值)相关推荐
- 2019杭电多校第七场 Kejin Player HDU - 6656 (期望)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6656 题意:一种游戏,从i级升到i+1级,需要氪金a[i]RMB,有的概率成功,有1-的概率变成x[i ...
- 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$ 次询问,每次询问 $ ...
- 杭电多校第七场 1011 Kejin Player HDU(6656)
杭电多校第七场 1011 Kejin Player 题意:给你N行,代表从i级有花费a[i]元的r[i]/s[i]的概率达到i+1级,剩下的概率中可能会到达x[i]级.然后询问从L级到R级的花费会是多 ...
- 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 ...
- 2019杭电多校第三场 6608 Fansblog(威尔逊定理+miller_rabin素性测试)
Problem Description 传送门 Farmer John keeps a website called 'FansBlog' .Everyday , there are many peo ...
- 2019 杭电 多校第3场 1006 Fansblog (HDU 6608)
题目链接 题解: 用威尔逊定理变换,然后求逆元. 代码: #include <bits/stdc++.h> using namespace std; typedef long long l ...
最新文章
- 毕业典礼上,硕士情侣现场求婚!校长也被甜到全程“姨母笑”
- free是自由,不是免费,从王开源说起
- LeetCode-337 House Robber III
- python调用系统api_Python调用系统底层API播放wav文件的方法
- MCtalk 创业声音丨辉禹科技合伙人孔杰:投资和创业都是思维的放大器
- 年轻——塞缪尔.厄尔曼
- 马踏棋盘算法(骑士周游)
- linux 网络dma驱动,S3C2410的Linux下DMA驱动程序开发
- Linux内核深入理解中断和异常(6):IRQs的非早期初始化
- linux下两个线程交替打印,两个线程交替打印AB
- 奇迹s12源码_muserver 奇迹MU服务端VC++源码
适合研究 的朋友 Game Simulator 模拟 器 269万源代码下载- www.pudn.com...
- token是什么意思
- [读书笔记]Spring中的容器设计详解
- Java单元测试之JUnit 5快速上手
- Admob ANE for Flash Air最新中文教程
- 求助威纶通触摸屏与三菱PLC程序
- 数据结构——前序线索二叉树及其前序遍历
- 微信开发者工具 当前系统代理不是安全代理,是否信任?问题之完美解决
- 猪猪女孩有多蠢,猫爪杯就有多火
- 对数据库三大范式及BC范式的理解