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. JAVA 调用c++ 扩展 批评那些垃圾,

    //本人喜欢用命令行的方式,这样好理解原理 { 1 生成的要是X64 并且是release版本 不要预编译头的dll项目,就是创建的时是一个空dll项目 2 java 调用时要import com.m ...

  2. PHP PDO 事务与自动提交

    现在通过 PDO 连接上了,在开始进行查询前,必须先理解 PDO 是如何管理事务的. 事务支持四大特性(ACID): 原子性(Atomicity) 一致性(Consistency) 隔离性(Isola ...

  3. elementui tree 节点过滤加载对应子节点

    /官网例子 <el-input placeholder="输入关键字进行过滤" v-model="filterText"> </el-inpu ...

  4. Java-Idea-笔记:lombok、微信支付依赖

    ylbtech-Java-Idea-笔记:lombok.微信支付依赖 1. idea-install-lombok返回顶部 1.0. P:问题描述Idea每打开一个类文件,类名就标红,不影响运行,但g ...

  5. 转:container_of分析 研究内核的博客

    源地址:http://blog.csdn.net/tigerjibo/article/details/8299589 2012-12-15 19:23 1636人阅读 评论(2) 收藏 举报   目录 ...

  6. C不同变量类型存储大小引发的BUG

    #include"stdio.h" typedef signed char int8; typedef unsigned char uint8; typedef signed sh ...

  7. CTF里的LSB

  8. kafka 批量添加topic 副本数

    shell 脚本: 1)列出只有一个副本的topic,保存到一个文件中: [root@hdp05 src]# cat fush.sh #!/bin/bash # topics=`/usr/hdp//k ...

  9. jquery操作html元素之(删除元素)

    删除元素/内容 如需删除元素和内容,一般可使用以下两个 jQuery 方法: remove() - 删除被选元素(及其子元素) empty() - 从被选元素中删除子元素 jQuery remove( ...

  10. MySQL查询语句详解,排序、分组、聚合函数、约束

    create database day20; 查询的时候from前面的字段是需要显示出来的内容,后面是条件use day20;create table phones(id int,pinpai var ...