首先根据数据范围,可以判断基本上是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. Instagram 为什么不用redis

    Hi 我还是大粽子 碎碎念 让我比较兴奋的就是这段时间的文章,被感兴趣的同学一一关注,关注量上涨就是我的最大动力. 我每周都会输出至少3篇原创文章,希望能被更多的同学关注,点赞,在看,形成习惯. In ...

  2. 剖析XAML语言

    这节剖析一下XAML(读作:zaml)--这一WPF中的UI设计语言. XAML 在wpf中,UI部分使用xaml语言来编写,xaml语言是由xml语言派生而来的语言,所以在xaml中我们可以看到很多 ...

  3. MySQL8.0大表秒加字段,是真的吗?

    前言: 很早就听说 MySQL8.0 支持快速加列,可以实现大表秒级加字段.笔者自己本地也有8.0环境,但一直未进行测试.本篇文章我们就一起来看下 MySQL8.0 快速加列到底要如何操作. 1.了解 ...

  4. QFNU 10-16 training

    7-9.小字辈 思路:建立一个类,并且类中存有其父节点,其地位,其儿子节点(因为儿子节点有很多,所以要用vector进行存储),通过-1这个祖先节点进行查找.首先找到-1这个祖先节点,并且读入其他位置 ...

  5. C++ primer plus读书笔记——第1章 预备知识

    第1章 预备知识 1. Ritchie希望有一种语言能将低级语言的效率.硬件访问能力和高级语言的通用性.可移植性融合在一起,于是他在旧语言的基础上开发了C语言. 2. 在C++获得一定程度的成功后,S ...

  6. js取随机数看这里

    取0~10的随机数 Math.Random()*10 ; 取1~10的随机数 Math.Random()*9 + 1 ; 取0~10的随机整数(十一个数字) Math.floor( Math.Rand ...

  7. KMP板子(其实还没完全懂...)

    KMP模板 1.next数组的实际含义 next数组从-1开始,主串a,子串b,next[j]=k,满足b[0,k-1]==b[j-k,j-1],k同时也为b子串前缀的下标,j为b子串后缀的下标 ge ...

  8. 15.Git

    1.Git介绍 1.1版本控制(理解) 无论是代码编写,还是文档编写,我们都会遇到对文档内容反复修改的情况 1.2开发中存在的问题(理解) 程序员小明负责的模块就要完成了,就在即将提交发布之前的一瞬间 ...

  9. Iperf3网络性能测试工具详解教程

    Iperf3网络性能测试工具详解教程 小M 2020年4月17日 运维 本文下载链接 [学习笔记]Iperf3网络性能测试工具.pdf 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保 ...

  10. Django/Flask的一些实现方法

    一.导出当前项目用到的依赖到requirements.txt文件中 pip freeze > requirements.txt 二.安装当前项目需要的依赖: pip install -r req ...