2019 Multi-University Training Contest 7 Kejin Player Final Exam
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的更多相关文章
- 2019 Multi-University Training Contest 7 Kejin Player 期望dp
题目传送门 题意:有n个等级,在每个等级花费$ai$的代价有$pi$的几率升到$i+1$级,$1-pi$的概率降级降到$xi$(xi<=i),给出q次询问,每次询问从$l$级到$r$级的代价的期 ...
- 2019 Multi-University Training Contest 7 Kejin Player(期望)
题意:给定在当前等级升级所需要的花费 每次升级可能会失败并且掉级 然后q次询问从l到r级花费的期望 思路:对于单次升级的期望 我们可以列出方程: 所以我们可以统计一下前缀和 每次询问O1回答 #inc ...
- 2019 Nowcoder Multi-University Training Contest 4 E Explorer
线段树分治. 把size看成时间,相当于时间 $l$ 加入这条边,时间 $r+1$ 删除这条边. 注意把左右端点的关系. #include <bits/stdc++.h> ; int X[ ...
- 2019 Nowcoder Multi-University Training Contest 1 H-XOR
由于每个元素贡献是线性的,那么等价于求每个元素出现在多少个异或和为$0$的子集内.因为是任意元素可以去异或,那么自然想到线性基.先对整个集合A求一遍线性基,设为$R$,假设$R$中元素个数为$r$,那 ...
- 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 ...
- 2019 Multi-University Training Contest 8
2019 Multi-University Training Contest 8 C. Acesrc and Good Numbers 题意 \(f(d,n)\) 表示 1 到 n 中,d 出现的次数 ...
- 2019 Multi-University Training Contest 1
2019 Multi-University Training Contest 1 A. Blank upsolved by F0_0H 题意 给序列染色,使得 \([l_i,r_i]\) 区间内恰出现 ...
- 2019 Multi-University Training Contest 2
2019 Multi-University Training Contest 2 A. Another Chess Problem B. Beauty Of Unimodal Sequence 题意 ...
- 2019 Multi-University Training Contest 5
2019 Multi-University Training Contest 5 A. fraction upsolved 题意 输入 \(x,p\),输出最小的 \(b\) 使得 \(bx\%p&l ...
随机推荐
- The chance for love doesn't come around every day.
The chance for love doesn't come around every day.爱的机会不是每天都有的.
- 使用threading模块创建线程
#_author:来童星#date:2019/12/17#使用threading模块创建线程import threading,timedef process(): for i in range(3): ...
- paper 16 : 计算机视觉领域博客资源
这是收录的图像视觉领域的博客资源的第一部分,包含:中国内地.香港.台湾 这些名人大家一般都熟悉,本文仅收录了包含较多资料的个人博客,并且有不少更新,还有些名人由于分享的paper.code或者数据集不 ...
- 网站数据采集|埋点设计|nginx日志文件
数据获取的方式主要可以分为两种: 1.网站日志文件(log files) 页面埋点js自定义的采集. 优缺点: web服务器自带的日志记录功能:优点方便,缺点信息收集不全 自定义的js埋点收集:优点想 ...
- NX二次开发-UFUN计算两点距离UF_VEC3_distance
NX11+VS2013 #include <uf.h> #include <uf_curve.h> #include <uf_vec.h> UF_initializ ...
- Codeforces 1163A - Eating Soup
题目链接:http://codeforces.com/problemset/problem/1163/A 题意:n 只猫围成一圈,离开 m 只,最多剩下几组猫. 思路:当 n == m 即猫都离开时 ...
- webService服务简单实现
首先写一个简单的webservice服务 package com.service.impl; import java.util.Date; import javax.jws.WebService; i ...
- Linux下修改Mysql的用户(root)的密码(转载)
修改的用户都以root为列.一.拥有原来的myql的root的密码: 方法一:在mysql系统外,使用mysqladmin# mysqladmin -u root -p password " ...
- jquery的attr获取表单checked 布尔值问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- scrapy的使用-Request
Request对象在我们写爬虫,爬取一页的数据需要重新发送一个请求的时候调用.这个类需要传递一些参数.其中比较常用的参数有: 1.url 请求的url对象 2.callback 在下载器下载完 ...