题目大意

  有\(m\)个游客, 他们都依次访问城市\(1,2,3,\ldots,n\), 第\(i\)个游客到达任意一个城市后有\(p_i\)的概率会停下, 不再继续前行

  设\(c_i\)个乘客经过了城市\(i\),则第\(i\)个人经过第\(j\)个城市时的快乐值是\(\frac{c_j+1}{c_{j-1}}h_{i,j}\)

  求每个人的快乐值之和的期望

  \(m,n\leq16\)

题解

  枚举城市\(x\)和经过当前城市的人的状态\(s\)

  设当前状态的人数为\(cnt\),出现概率为\(ps\),所有经过当前城市的人的\(p_i\)的和为\(pn\)

  枚举每个人\(i\),\(i\)在\(x+1\)城市对答案的贡献是

\[\frac{\text{当前状态出现概率$\times$第$i$个人走到下一个城市的概率$\times($其他人走到下一个城市的概率$+$第$i$个人一定会走到下一个城市$)$}}{\text{经过$i$城市的人数}}h_{i,x+1}
\]

\[\frac{ps\times p_i\times (pn-p_i+1)}{cnt}h_{i,x+1}
\]

  时间复杂度:\(O(nm2^m)\)

代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<ctime>
#include<utility>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
double p[20];
double f[20][20];
double h[20][20];
int main()
{
// freopen("b.in","r",stdin);
int n,m;
scanf("%d%d",&m,&n);
int i;
for(i=1;i<=m;i++)
scanf("%lf",&p[i]);
int j;
for(i=1;i<=m;i++)
{
f[i][1]=1;
for(j=2;j<=n;j++)
f[i][j]=f[i][j-1]*p[i];
}
double ans=0;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
scanf("%lf",&h[i][j]);
ans+=f[i][j]*h[i][j];
}
int s;
for(i=1;i<=n-1;i++)
for(s=1;s<(1<<m);s++)
{
double ps=1,sum=0,pn=0;
int cnt=0;
for(j=1;j<=m;j++)
if(s&(1<<(j-1)))
{
ps*=f[j][i];
cnt++;
pn+=p[j];
}
else
ps*=1-f[j][i];
for(j=1;j<=m;j++)
if(s&(1<<(j-1)))
sum+=p[j]*h[j][i+1]*(pn-p[j]+1);
ans+=ps*sum/cnt;
}
printf("%.10lf\n",ans);
return 0;
}

【XSY1596】旅行 期望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. [NOIP2016]换教室 D1 T3 Floyed+期望DP

    [NOIP2016]换教室 D1 T3 Description 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 ...

  3. HDU 4336 Card Collector (期望DP+状态压缩 或者 状态压缩+容斥)

    题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率,每包至多一张卡片,可能没有卡片.求需要买多少包才能拿到所以的N张卡片,求次数的期望. 析:期望DP,是很容易看出来的,然后由 ...

  4. 【BZOJ-4008】亚瑟王 概率与期望 + DP

    4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 832  Solved: 5 ...

  5. 期望dp BZOJ3450+BZOJ4318

    BZOJ3450 概率期望DP f[i]表示到i的期望得分,g[i]表示到i的期望长度. 分三种情况转移: ① s[i]=‘x’:f[i]=f[i-1],g[i]=0 ② s[i]=‘o’:f[i]= ...

  6. HDU 4405 期望DP

    期望DP算是第一题吧...虽然巨水但把思路理理清楚总是好的.. 题意:在一个1×n的格子上掷色子,从0点出发,掷了多少前进几步,同时有些格点直接相连,即若a,b相连,当落到a点时直接飞向b点.求走到n ...

  7. POJ 2096 【期望DP】

    题意: 有n种选择,每种选择对应m种状态.每种选择发生的概率相等,每种选择中对应的每种状态发生的概率相等. 求n种选择和m种状态中每种至少发生一次的期望. 期望DP好别扭啊.要用倒推的方法. dp[i ...

  8. ZOJ 3822 Domination 期望dp

    Domination Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/showProblem ...

  9. poj 2096 Collecting Bugs(期望 dp 概率 推导 分类讨论)

    Description Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other ...

随机推荐

  1. Eclipse新建Maven工程——git篇

    1.eclipse,新建一个maven工程,步骤如下图: 右键新建的工程 发布前后工程对比如下: 2.发布为本地仓库 因为项目中,不是所有的文件,都需要提交到githut上,所以需要把不需要提交的问题 ...

  2. Leetcode 665. Non-decreasing Array(Easy)

    Given an array with n integers, your task is to check if it could become non-decreasing by modifying ...

  3. 18-vue-cli脚手架项目中组件的使用

    在webpack-simple模板中,包括webpck模板.一个.vue文件就是一个组件. 为什么会这样呢?因为webpack干活了!webpack的将我们所有的资源文件进行打包.同时webpack还 ...

  4. Linux之常用软件-服务

    在使用Linux系统的时候,经常要使用一些功能,但是并不是系统自带的一些功能,这个时候就需要我们进行扩展安装一些软件. 1)telnet  检测telnet-server的rpm包是否安装 [root ...

  5. javascript中的 return false和return true

    关于javascript中的 return false和return true,return 是javascript里函数返回值的关键字,一个函数内处理的结果可以使用return 返回,这样在调用函数 ...

  6. [转帖]Linux 下如何知道是否有人在使坏?

    Linux 下如何知道是否有人在使坏? 学到了两个最简单的命令 usermod -L username 锁定账户 passwd -s username 查看用户状态. 自己linux 知道的还是少 需 ...

  7. [转帖]xargs命令详解,xargs与管道的区别

    xargs命令详解,xargs与管道的区别 https://www.cnblogs.com/wangqiguo/p/6464234.html 之前一直说要学习一下 xargs 到现在为止也没学习.. ...

  8. windows浏览器访问虚拟机开的rabbitmq服务,无法访问

    根据这个博主的建议 https://blog.csdn.net/csdnliuxin123524/article/details/78207427 换了一个浏览器上火狐浏览器输入“localhost: ...

  9. Json dump

    json 模块提供了一种很简单的方式来编码和解码JSON数据. 其中两个主要的函数是 json.dumps() 和 json.loads() , 要比其他序列化函数库如pickle的接口少得多. 下面 ...

  10. 随机森林(Random Forest)

    阅读目录 1 什么是随机森林? 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 5 袋外错误率(oob error) 6 随机森林工作原理解释的一个简单例子 7 随机森林的Pyth ...