[CSP-S模拟测试]:大佬(kat)(数学期望)
题目描述
辣鸡$ljh\ NOI$之后就退役了,然后就滚去学文化课了。
他发现$katarina$大佬真是太强了,于是就学习了一下$katarina$大佬的做题方法。
比如这是一本有$n$道题的练习册,$katarina$大佬每天都会做k道题。
第一天做第$1~k$题,第二天做第$2~k+1$题……第$n-k+1$天做第$n-k+1~n$道题。
但是辣鸡$ljh$又不想太累,所以他想知道$katarina$大佬做完这本练习册的劳累度。
每道题有它的难度值,假设今天$katarina$大佬做的题目中最大难度为$t$,那么今天$katarina$大佬的劳累度就是$w_{t_i}$,做完这本书的劳累值就是每天的劳累值之和。
但是辣鸡$ljh$一道题都不会,自然也不知道题目有多难,他只知道题目的难度一定在$1~m$之间随机。
他想让即将参加$NOIP$的你帮他算算$katarina$大佬做完这本书的劳累值期望。
输入格式
第一行,三个整数$n,m,k$。
第二行,$m$个整数表示$w_{t_1},,,,w_{t_m}$。
输出格式
输出劳累值期望对1000000007取模的值。
样例
样例输入1:
2 2 2
1 2
样例输出1:
750000007
样例输入2:
5 4 3
2 1 3 5
样例输出2:
890625018
数据范围与提示
样例1解释:
有${1,1},{1,2},{2,1},{2,2}$四种可能,期望为$\frac{7}{4}$。
数据范围:
$n\leqslant 500$。
$m\leqslant 400$。
题解
又是一道假期望……
注意这句话:第一天做第$1~k$题,第二天做第$2~k+1$题……第$n-k+1$天做第$n-k+1~n$道题。
而不是:第一天做第$1~k$题,第二天做第$k+1~2\times k$题……第$\frac{n}{k}$天做第$n-k+1~n$道题。
一看就是道概率$DP$,那么考虑怎么定义$DP$式子。
定义$dp[i][j]$表示已经做了$i$道题且最大难度小于等于$j$的劳累值期望。
考虑如何进行状态转移,分两种情况:
$\alpha.$当最大值小于$j$时,显然可以直接转移,即:$dp[i][j]=dp[i][j-1]$。
$\beta.$当最大值等于$j$时,枚举最大值第一次出现的位置:
$dp[i][j]+=\sum \limits_{l=1}^{i}dp[l-1][j]\times m^{i-l}+j\times k\times m^{i-1}+dp[i-1][j]\times m^{l-1}$
注意边界情况即可。
还需要注意的一点是,如果k<n则无解,特判一下就好啦~
时间复杂度:$\Theta(n^2m)$。
代码时刻
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
long long ans;
long long w,t,l;
long long qpow(long long x,long long y)
{
long long res=1;
while(y)
{
if(y&1)res=(res*x)%1000000007;
x=(x*x)%1000000007;
y>>=1;
}
return res;
}
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=m;i++)
{
scanf("%lld",&w);
t=qpow(i,k);
ans=(ans+(t-l+1000000007)*w%1000000007)%1000000007;
l=t;
}
long long inv=qpow(qpow(m,k),1000000005);
cout<<max((n-k+1),0)*ans%1000000007*inv%1000000007<<endl;
return 0;
}
rp++
[CSP-S模拟测试]:大佬(kat)(数学期望)的更多相关文章
- [CSP-S模拟测试]:不等式(数学)
题目描述 小$z$热衷于数学.今天数学课的内容是解不等式:$L\leqslant S\times x\leqslant R$.小$z$心想这也太简单了,不禁陷入了深深的思考:假如已知$L,R,S,M$ ...
- 【NOIP模拟赛】书 数学+期望概率
biubiu~~~ 对于这道傻题.........我考场上退了一个多小时才推出来这个东西是排列...........然后我打的dfs效率n!logInf正好n=9是最后一个能过的数结果前三个点的n全是 ...
- [CSP-S模拟测试]:A(数学)
题目传送门(内部题44) 输入格式 一行四个整数,分别表示$S,T,a,b$. 输出格式 输出最小步数,数据保证有解. 样例 样例输入: 10 28 4 2 样例输出: 数据范围与提示 样例解释: 先 ...
- [CSP-S模拟测试]:装饰(数学)
题目传送门(内部题147) 输入格式 每个测试点第一行一个正整数$T$,表示该测试点内的数据组数. 接下来$T$行,每行三个非负整数$a,b,c$,含义如题目中所示. 输出格式 对每组数据输出一行一个 ...
- [CSP-S模拟测试]:最大值(数学+线段树)
题目背景 $Maxtir$最喜欢最大值. 题目传送门(内部题128) 输入格式 第$1$行输入四个正整数$n,m,q$. 第$2$至$n+1$行中,第$i+1$行输入魔法晶石$i$的三种属性$(x_i ...
- [CSP-S模拟测试]:求和(数学)
题目传送门(内部题107) 输入格式 一行五个正整数$x_1,y_1,x_2,y_2,m$ 输出格式 输出一个整数,为所求的答案对$m$取模后的结果. 样例 样例输入: 2 1 5 3 10007 样 ...
- [CSP-S模拟测试]:数列(数学)
题目传送门(内部题95) 输入格式 第一行三个整数$n,a,b$,第二行$n$个整数$x_1\sim x_n$表示数列. 输出格式 一行一个整数表示答案.无解输出$-1$. 样例 样例输入:2 2 3 ...
- [CSP-S模拟测试]:Walker(数学)
题目传送门(内部题86) 输入格式 第一行$n$接下来$n$行,每行四个浮点数,分别表示变换前的坐标和变换后的坐标 输出格式 第一行浮点数$\theta$以弧度制表示第二行浮点数$scale$第三行两 ...
- [CSP-S模拟测试]:Six(数学)
题目传送门(内部题85) 输入格式 一个正整数$N$. 输出格式 一个数表示答案对$1000000007$取模后的结果 样例 样例输入1: 样例输出1: 样例输入2: 样例输出2: 样例输入3: 样例 ...
随机推荐
- Nginx 3.使用配置
转 https://www.cnblogs.com/wcwnina/p/9946747.html 本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文 ...
- P1754球迷购票问题
这是一道动态规划题,其实也是个数论题. 有n人拿50,有n人拿100买票,必须让50元的人买,不然无法找零钱,问最多有几种方案可以每一次都买票成功.这个题首先令人想到搜索,但是随即发现dp是正解,于是 ...
- 中标麒麟(linux)mysql配置记录
刚装好mysql时,使用正常,后来再次使用时,连接不成功.(虚拟机中) 配置网络有问题, 1.我将ifcfg-*的两个文件备份后删除了. 2.点击右下角的小电脑,重新新建一个网络连接.把网络接入主机的 ...
- C语言数组名取地址。。。
int main(){ int a[5] = { 1, 2, 3, 4, 5 }; printf("%08X ,%08X ,%08X ,%08X", a, &a, a + ...
- bzoj4103 [Thu Summer Camp 2015]异或运算(可持久化trie)
内存限制:512 MiB 时间限制:1000 ms 题目描述 给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值Aij=xi ...
- sublime3故障收集emmet无法安装pyv8
本文主要介绍Sublime Text如何开启debug模式,分析使用过程中一些常见错误情形的解决方法.情形一:Package Control:There are no packages availab ...
- Pose &&Get的区别
从一个页面转向另一个页面的请求方式有两种,Post和Get. 如果从原理上来探究他们的区别,涉及到Http传输协议的细节,本文不加探究,只讨论一下表象. 1.Post传输数据时,不需要在URL中显示出 ...
- PAT Basic 1032 挖掘机技术哪家强 (20 分)
为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 1 的正整数 N,即参赛人数.随后 N 行, ...
- 下载放在resource下面的excel文件
1.将excel文件放项目resources目录下 2.打包的时候排除指定后缀文件,否则打包时会出现文件损坏的情况 <configuration> <encoding>UTF- ...
- Django【第28篇】:优化查询的方式
优化查询的方式 一.假设有三张表 Room id 1 2 .. 1000 User: id 1 .. 10000 Booking: user_id room_id time_id date 1 1 8 ...