首先根据数据范围,可以判断基本上是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. 浅谈持续集成(CI)、持续交付(CD)、持续部署(CD)

    CI/CD是实现敏捷和Devops理念的一种方法,具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的 整个生命周期(从集成和测试阶段,到交付和部署).这些关联的事务通常被统称为"CI ...

  2. MySQL DDL详情揭露

    前言: MySQL中DDL语句,即数据定义语言,用于创建.删除.修改.库或表结构,对数据库或表的结构操作.常见的有create,alter,drop等.这类语句通常会耗费很大代价,特别是对于大表做表结 ...

  3. 用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群

    背景 目前,很多边缘计算容器开源项目在使用上均存在一个默认的前提:用户需要提前准备一个标准的或者特定工具搭建的 Kubernetes 集群,然后再通过特定工具或者其他方式在集群中部署相应组件来体验边缘 ...

  4. 引言:CTF新世界

    1. CTF的昨天和今天 CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式.CTF起源于1996年DEFCON全球黑客 ...

  5. 持续集成和持续交付工具-jenkins

    jenkins说明 jenkins是一款由Java编写的开源的持续集成工具,它运行在Servlet容器中(例如Apache Tomcat).它支持软件配置管理(SCM)工具(包括AccuRev SCM ...

  6. Apache Flink 1.12.0 正式发布,DataSet API 将被弃用,真正的流批一体

    Apache Flink 1.12.0 正式发布 Apache Flink 社区很荣幸地宣布 Flink 1.12.0 版本正式发布!近 300 位贡献者参与了 Flink 1.12.0 的开发,提交 ...

  7. 003.kubernets对于namespace的管理

    一 Kuberbetes的架构简单介绍 1.1 云计算的传统分类 1.2 kubernetes基础架构 工作机制 用户通过kubectl向api-server提交需要运行的pod描述 api-serv ...

  8. 如何在思科交换机上配置Telnet远程登录

    本地用户认证登录 如果配置本地用户认证,则需要开启本地数据库认证,这时就不需要配置相应虚拟终端认证密码了,但要至少配置一个本地用户并设置用户密码用来进行登录认证,具体配置如下: C2960#conf ...

  9. python 匹配中文字符

    参考: http://hi.baidu.com/nivrrex/blog/item/e6ccaf511d0926888d543071.html           http://topic.csdn. ...

  10. GO学习-(31) Go语言操作Elasticsearch

    Elasticsearch 本文简单介绍了ES.Kibana和Go语言操作ES. Elasticsearch 介绍 Elasticsearch(ES)是一个基于Lucene构建的开源.分布式.REST ...