Kejin Player 期望DP

题意:

初始等级为1,每一级有四个参数 r , s , x , a 。

每一级有一个概率p=r/s花费a的代价升级到下一级,失败可能会倒退到x级

设从 l 到 r 的期望为 g(l, r), 这种期望满足减法 g(l, r) = g(1, r) − g(1, l).

因为升级只能一级一 级升, 所以要从 1 升级到 r, 必然要经过 l.

求一个前缀和

sum[i+1]=sum[i]+ai * si / ri + (sum[i]-sum[x])*(si-ri)/ri;

ai * si / ri + (sum[i]-sum[x])*(si-ri)/ri  这个类似于二项分布

一个是升到下一级的花费,一个是失败后回到 i 这一级的花费

 #include <set>
#include <map>
#include <stack>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
#include <vector>
#include <time.h>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <unordered_map> #define pi acos(-1.0)
#define eps 1e-9
#define fi first
#define se second
#define rtl rt<<1
#define rtr rt<<1|1
#define bug printf("******\n")
#define mem(a, b) memset(a,b,sizeof(a))
#define name2str(x) #x
#define fuck(x) cout<<#x" = "<<x<<endl
#define sf(n) scanf("%d", &n)
#define sff(a, b) scanf("%d %d", &a, &b)
#define sfff(a, b, c) scanf("%d %d %d", &a, &b, &c)
#define sffff(a, b, c, d) scanf("%d %d %d %d", &a, &b, &c, &d)
#define pf printf
#define FIN freopen("../date.txt","r",stdin)
#define gcd(a, b) __gcd(a,b)
#define lowbit(x) x&-x
#define IO iOS::sync_with_stdio(false) using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int maxn = 1e6 + ;
const int maxm = 8e6 + ;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + ; LL expmod(LL a, LL b) {
LL res = ;
while (b) {
if (b & ) res = res * a % mod;
a = a * a % mod;
b = b >> ;
}
return res;
} int t, n, q;
struct node {
LL r, s, x, a;
} qu[maxn];
LL sum[maxn]; int main() {
//FIN;
sf(t);
while (t--) {
sff(n, q);
for (int i = ; i <= n; i++) scanf("%lld%lld%lld%lld", &qu[i].r, &qu[i].s, &qu[i].x, &qu[i].a);
sum[] = ;
for (int i = ; i <= n; i++) {
sum[i + ] = sum[i] + qu[i].s * expmod(qu[i].r, mod - ) % mod * qu[i].a % mod +
(qu[i].s - qu[i].r + mod) % mod * expmod(qu[i].r, mod - ) % mod *
(sum[i] - sum[qu[i].x] + mod) % mod;
// printf("sum[%d] = %d\n", i + 1, sum[i + 1]);
sum[i+]%=mod;
}
while (q--) {
int L, R;
sff(L, R);
printf("%lld\n", (sum[R] - sum[L]+mod)%mod);
}
}
return ;
}

Final Exam 思维题

题意:

有n个题目,每个题目的分数总和为m,你不知道哪个题目的分数是多少。

一个题目的分数是X,则你最少需要X+1的时间才能做出这一个问题。

每一题的分数范围都是【0,m】

问你保证回答出k个问题的最小代价是多少。

因为每一题的分数未知,你无法知道前K个问题的最小代价和。

考虑极端情况,假设你要问答K个问题,有K-1的都是0分,剩下的问题总分是m分,

如何保证一定可以回答出K个问题呢

那就是对于剩下的n-k+1个问题都复习m/(n-k+1)+1小时,

其实就是你保证你剩下的n-k+1的问题复习m小时以上(这样你这个n-k+1个问题里面你至少可以做出来一个)

这个可以保证这n个问题无论你选哪一个都有K个你做的出。

完全不会分析,流下了菜鸡的眼泪。

 #include <bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <queue>
#include <cmath>
#include <algorithm>
#include <set>
#include <iostream>
#include <map>
#include <stack>
#include <string>
#include <time.h>
#include <vector> #define pi acos(-1.0)
#define eps 1e-9
#define fi first
#define se second
#define rtl rt<<1
#define rtr rt<<1|1
#define bug printf("******\n")
#define mem(a, b) memset(a,b,sizeof(a))
#define name2str(x) #x
#define fuck(x) cout<<#x" = "<<x<<endl
#define sf(n) scanf("%d", &n)
#define sff(a, b) scanf("%d %d", &a, &b)
#define sfff(a, b, c) scanf("%d %d %d", &a, &b, &c)
#define sffff(a, b, c, d) scanf("%d %d %d %d", &a, &b, &c, &d)
#define pf printf
#define FRE(i, a, b) for(i = a; i <= b; i++)
#define FREE(i, a, b) for(i = a; i >= b; i--)
#define FRL(i, a, b) for(i = a; i < b; i++)+
#define FRLL(i, a, b) for(i = a; i > b; i--)
#define FIN freopen("../date.txt","r",stdin)
#define gcd(a, b) __gcd(a,b)
#define lowbit(x) x&-x
#define rep(i, a, b) for(int i=a;i<b;++i)
#define per(i, a, b) for(int i=a-1;i>=b;--i) using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int maxn = 3e3 + ;
const int maxm = 8e6 + ;
const int INF = 0x3f3f3f3f;
const int mod = ; int t;
LL n, m, k; int main() {
sf(t);
while (t--) {
scanf("%lld%lld%lld", &n, &m, &k);
printf("%lld\n", m + k + (k - ) * (m / (n - k + )));
}
return ;
}

2019 Multi-University Training Contest 7 Kejin Player Final Exam的更多相关文章

  1. 2019 Multi-University Training Contest 7 Kejin Player 期望dp

    题目传送门 题意:有n个等级,在每个等级花费$ai$的代价有$pi$的几率升到$i+1$级,$1-pi$的概率降级降到$xi$(xi<=i),给出q次询问,每次询问从$l$级到$r$级的代价的期 ...

  2. 2019 Multi-University Training Contest 7 Kejin Player(期望)

    题意:给定在当前等级升级所需要的花费 每次升级可能会失败并且掉级 然后q次询问从l到r级花费的期望 思路:对于单次升级的期望 我们可以列出方程: 所以我们可以统计一下前缀和 每次询问O1回答 #inc ...

  3. 2019 Nowcoder Multi-University Training Contest 4 E Explorer

    线段树分治. 把size看成时间,相当于时间 $l$ 加入这条边,时间 $r+1$ 删除这条边. 注意把左右端点的关系. #include <bits/stdc++.h> ; int X[ ...

  4. 2019 Nowcoder Multi-University Training Contest 1 H-XOR

    由于每个元素贡献是线性的,那么等价于求每个元素出现在多少个异或和为$0$的子集内.因为是任意元素可以去异或,那么自然想到线性基.先对整个集合A求一遍线性基,设为$R$,假设$R$中元素个数为$r$,那 ...

  5. 2019 Multi-University Training Contest 7

    2019 Multi-University Training Contest 7 A. A + B = C 题意 给出 \(a,b,c\) 解方程 \(a10^x+b10^y=c10^z\). tri ...

  6. 2019 Multi-University Training Contest 8

    2019 Multi-University Training Contest 8 C. Acesrc and Good Numbers 题意 \(f(d,n)\) 表示 1 到 n 中,d 出现的次数 ...

  7. 2019 Multi-University Training Contest 1

    2019 Multi-University Training Contest 1 A. Blank upsolved by F0_0H 题意 给序列染色,使得 \([l_i,r_i]\) 区间内恰出现 ...

  8. 2019 Multi-University Training Contest 2

    2019 Multi-University Training Contest 2 A. Another Chess Problem B. Beauty Of Unimodal Sequence 题意 ...

  9. 2019 Multi-University Training Contest 5

    2019 Multi-University Training Contest 5 A. fraction upsolved 题意 输入 \(x,p\),输出最小的 \(b\) 使得 \(bx\%p&l ...

随机推荐

  1. Go 逻辑运算符

    Go 逻辑运算符 package main import "fmt" func main() { var a bool = true var b bool = false if ( ...

  2. docker搭建jenkins

    这里是在linux环境下安装docker之后,在doucer内安装jenkins --------------------docker 安装 jenkins---------------------- ...

  3. go语言type使用小技巧

    import "fmt" type Rank int const ( Rank001 Rank = iota Rank002 Rank003 Rank004 ) var rewar ...

  4. CocoaPods管理iOS项目 2018年11月06日

    一.创建Test工程项目 二.打开终端 当前pod版本(1.6.0.beta.2最新版本2018年11月06日)和gem源路径(https://gems.ruby-china.com): 1.cd+当 ...

  5. Spark 自定义函数(udf,udaf)

    Spark 版本 2.3 文中测试数据(json) {"name":"lillcol", "age":24,"ip":& ...

  6. [17]APUE:线程

    通常情况下,线程模型的并发性能优于进程模型,但不总是这样 线程的优势: 线程的创建.销毁及上下文切换代价比进程低 某些情况下,使用线程可以简化逻辑,避免异步编程的复杂性 同一进程内所有线程共享全局内存 ...

  7. servlet的xml配置详解

    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns ...

  8. 20140403 opencv GPU安装

    1.  查看本机配置,查看显卡类型是否支持NVIDIA GPU,本机显卡为NVIDIA GeForce 8400 GS: 2.  从http://www.nvidia.cn/Download/inde ...

  9. 打包的@font-face包

    在网页中使用 @font-face 规则嵌入字体,前提是可以从你的网站或第三方 Web 服务器下载到相应的字体.以这种方式提供的字体,会在使用该字体的页面第一次加载时被浏览器下载并缓存起来,以后就不用 ...

  10. 三层(3-tier architecture)基础

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/lhc2207221755/article/details/24802053     之前看过非常多关 ...