首先根据数据范围,可以判断基本上是n^2的复杂度

通过分析我们发现每一次都可以从m个数中任意选,既然任意选,那么此时的概率的分母就是不变的,然而题中涉及的是某一段的最大值,所以我们按套路假设

f[i][j]表示第i天,当前最大值为j的方案数,也可以是概率,

我们又发现天数是以k为一个单位的,

那么我们i从1-k枚举即可,

f[i][j]=f[i-1][j]*j(表示前一道题已经是最大值,这一道题从1-j选择)

f[i][j]=f[i-1][1---(j-1)]*1(表示当前选j,可以用前缀和维护)

这里是方案数,因为以k天为单位,所以

统计出每个f[k][i]*wt[i]*pow(pow(m,k),mod-2)的和

显然这就是k天的劳累度的期望(也可以理解为每k天的平均花费是这些)

那么求n天我们只需要看n天中有多少k,答案*(n-k+1)%mod

(顺便一提:WA95 是因为数据好像有k>n的情况,puts(0)即可,虽然数据范围说没有........)

以后做期望一定要努力推,其实想懂后真的不难

其实关于期望的题,也可以用概率或方案数去做,这题就是个假期望......

 1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5 #include<cmath>
6 #include<string>
7 #include<vector>
8 #define int long long
9 #define MAXN 10001
10 using namespace std;
11 int f[MAXN][MAXN];
12 int wt[MAXN];
13 int n,m,k;
14 int mod=1000000007;
15 int pow(int x,int y)
16 {
17 int aa=1;
18 while(y>0)
19 {
20 if(y&1)
21 {
22 aa=aa*x%mod;
23 }
24 x=x*x%mod;
25 y>>=1;
26 }
27 return aa%mod;
28 }
29 int sum[MAXN][MAXN];
30 signed main()
31 {
32 scanf("%lld%lld%lld",&n,&m,&k);
33 if(k>n)
34 {
35 printf("0\n");
36 return 0;
37 }
38 for(int i=1;i<=m;++i)
39 {
40 scanf("%lld",&wt[i]);
41 }
42 for(int i=1;i<=m;++i)
43 {
44 f[1][i]=1;
45 sum[1][i]=sum[1][i-1]+1;
46 }
47 for(int i=2;i<=k;++i)
48 {
49 for(int j=1;j<=m;++j)
50 {
51 f[i][j]=(f[i][j]+f[i-1][j]*j)%mod;
52 f[i][j]=(f[i][j]+sum[i-1][j-1])%mod;
53 }
54 for(int j=1;j<=m;++j)
55 {
56 sum[i][j]=(sum[i][j-1]+f[i][j])%mod;
57 }
58 }
59 int ans=0;
60 for(int i=1;i<=m;++i)
61 {
62 ans=(ans+f[k][i]*wt[i]%mod)%mod;
63 }
64 printf("%lld\n",ans*pow(pow(m,k),mod-2)%mod*(n-k+1)%mod);
65 }

【模拟7.29】大佬(概率期望DP)的更多相关文章

  1. 【BZOJ-1419】Red is good 概率期望DP

    1419: Red is good Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 660  Solved: 257[Submit][Status][Di ...

  2. 【bzoj4832】[Lydsy2017年4月月赛]抵制克苏恩 概率期望dp

    题目描述 你分别有a.b.c个血量为1.2.3的奴隶主,假设英雄血量无限,问:如果对面下出一个K点攻击力的克苏恩,你的英雄期望会受到到多少伤害. 输入 输入包含多局游戏. 第一行包含一个整数 T (T ...

  3. 【loj6191】「美团 CodeM 复赛」配对游戏 概率期望dp

    题目描述 n次向一个栈中加入0或1中随机1个,如果一次加入0时栈顶元素为1,则将这两个元素弹栈.问最终栈中元素个数的期望是多少. 输入 一行一个正整数 n . 输出 一行一个实数,表示期望剩下的人数, ...

  4. Codeforces - 1264C - Beautiful Mirrors with queries - 概率期望dp

    一道挺难的概率期望dp,花了很长时间才学会div2的E怎么做,但这道题是另一种设法. https://codeforces.com/contest/1264/problem/C 要设为 \(dp_i\ ...

  5. 概率期望dp

    对于概率dp,我一直都弄得不是特别明白,虽然以前也有为了考试去突击过,但是终究还是掌握得不是很好,所以决定再去学习一遍,把重要的东西记录下来. 1.hdu4405 Description 在一个 \( ...

  6. Codeforces 908 D.New Year and Arbitrary Arrangement (概率&期望DP)

    题目链接:New Year and Arbitrary Arrangement 题意: 有一个ab字符串,初始为空. 用Pa/(Pa+Pb)的概率在末尾添加字母a,有 Pb/(Pa+Pb)的概率在末尾 ...

  7. [BZOJ4832]抵制克苏恩(概率期望DP)

    方法一:倒推,最常规的期望DP.f[i][a][b][c]表示还要再攻击k次,目前三种随从个数分别为a,b,c的期望攻击英雄次数,直接转移即可. #include<cstdio> #inc ...

  8. LightOJ 1030 Discovering Gold (概率/期望DP)

    题目链接:LightOJ - 1030 Description You are in a cave, a long cave! The cave can be represented by a \(1 ...

  9. [NOIP2016]换教室(概率期望$DP$)

    其实吧我老早就把这题切了--因为说实话,这道题确实不难啊--李云龙:比他娘的状压DP简单多了 今天我翻以前在Luogu上写的题解时,突然发现放错代码了,然后被一堆人\(hack\)--蓝瘦啊\(ORZ ...

随机推荐

  1. Linux系统运行netstat命令时的过三关斩一将

    1.简介 这篇文章主要是记录在日常工作中遇到的一些问题,将其都总结整合到一起,方便查看,提高工作效率.小伙伴们看到标题可能觉得奇怪,不是过五关斩六将而是过三关斩一将.慢慢地往后看发现其中奥秘. 2.过 ...

  2. CentOS6.7系统文本安装-2020

    CentOS6.7系统文本安装 [日期:2016-01-30] 来源:Linux社区  作者:endmoon [字体:大 中 小]   一.选择虚拟机软件 1)VMware Workstation   ...

  3. SSH 远程控制

    本文以 Ubuntu 20.04(客户端) 控制 Kali Linux 2020.2(服务端)为例 1.安装SSH(secure Shell) SSH分为客户端oppenssh-client和服务端o ...

  4. Linux 目录管理

    tree命令的基本使用 tree 查看当前目录的树状结构 -a 查看所有包含隐藏文件 -L 1 查看目录层级 tree /root 指定目录 根目录下的主要文件 /bin 普通用户可以执行的二进制文件 ...

  5. lua中求table长度--(转自有心故我在)

    关于lua table介绍,看以前的文章http://www.cnblogs.com/youxin/p/3672467.html. 官方文档是这么描述#的: 取长度操作符写作一元操作 #. 字符串的长 ...

  6. JQuery 使用教程

    引言 JQuery 是一个 JavaScript 库,它极大地简化了 JavaScript 编程.JQuery 拥有丰富的选择器,可以非常方便的获取和操作 DOM 元素,而在 JQuery 中所有选择 ...

  7. 三大主流开源硬件对比:Arduino vs Raspberry Pi vs BeagleBone

    http://www.elecfans.com/emb/361236_3.html 下文摘自上面的链接 软硬件整合是今年一再被提及的话题,如今我们也可以看到不少硬件创业的成功案例,比如Jawbone ...

  8. 路由信息相关 route 网卡

    目录 route命令 1.查看路由表 2.管理路由 基本网络配置 添加网卡地址 修改网卡UUID route命令 路由表管理命令,路由表主要构成: Destination: 目标网络ID,表示可以到达 ...

  9. Python中字符串转换列表

    前言:在使用Python完成工作中一些任务的时候,常常要对数据类型进行转换,比如字符串转列表,列表转字符串,字符串转元组等等,下面分享一下常用的字符串转列表 字符串转列表 第一种字符串转列表: t_s ...

  10. linux上传启动项目命令

    使用Xshell 或其他远程链接登录工具登录服务器后 1.切换用户到root: sudo -i 账户密码 注意:可直接将jar包放入root用户目录下,避免有可能因为服务器文件夹权限设置导致在指定文件 ...