题目链接: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

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn = 5e5 + ;
const ll mod = 1e9 + ;
const ll qpow(ll a, ll b) {
ll ans = ;
while (b) {
if (b & )
ans = a * ans%mod;
a = a * a%mod;
b /= ;
}
return ans;
}
ll r[maxn], s[maxn], x[maxn], a[maxn], dp[maxn];
int main() {
int t;
scanf("%d", &t);
while (t--) {
int n, q;
scanf("%d%d", &n, &q);
for (int i = ; i <= n; i++)
scanf("%lld%lld%lld%lld", &r[i], &s[i], &x[i], &a[i]);
for (int i = ; i <= n; i++) {
ll p = r[i] * qpow(s[i], mod - ) % mod;
ll pp = qpow(p, mod - ) % mod;
ll f = (a[i] + ( + mod - p) % mod*(dp[i] + mod - dp[x[i]]) % mod) % mod*pp%mod;
dp[i + ] = (dp[i] + f) % mod;
}
while (q--) {
int l, r;
scanf("%d%d", &l, &r);
printf("%lld\n", (dp[r] - dp[l] + mod) % mod);
}
}
}

最新文章

  1. VS 中關於附加到進程中調試 的問題。
  2. Alwayson 与 mirror
  3. Markdown使用指南(2)—— 键盘符号说明
  4. Android 采用get方式提交数据到服务器
  5. (转载)web测试方法总结
  6. [Effective Java]第四章 类和接口
  7. U盘
  8. SSH登录很慢问题的解决
  9. 转载收藏- (TTL与CMOS)电路常识性概念
  10. 网页元素定位神器之Xpath详解
  11. C10K problem
  12. JS组件系列——自己动手扩展BootstrapTable的 冻结列 功能:彻底解决高度问题
  13. Java 对象复制
  14. Angular中 build的时候遇到的错误--There are multiple modules with names that only differ in casing
  15. IDE
  16. python结合pyvmomi 监控esxi的磁盘等信息
  17. Java 8 方法引用
  18. LightOJ - 1265 (概率)
  19. EF6 简单增删改查示例代码
  20. HDMI ip中的时钟 vid_clk与ls_clk

热门文章

  1. HTML加载过程
  2. Oracle的分页和MySQL的分页
  3. 【bzoj1176】[Balkan2007]Mokia
  4. linux 阿里云oss命令ossutil64 同步文件
  5. 长链剖分优化树形DP总结
  6. SpringCloud 教程 (六)断路器聚合监控(Hystrix Turbine)
  7. E. Compress Words
  8. 170905-MyBatis中的关系映射
  9. [CSP-S模拟测试]:排列组合(数学 or 找规律)
  10. Java数据结构与算法(2):栈