【XSY1596】旅行 期望DP
题目大意
有\(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\)城市对答案的贡献是
\]
即
\]
时间复杂度:\(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的更多相关文章
- 【BZOJ-1419】Red is good 概率期望DP
1419: Red is good Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 660 Solved: 257[Submit][Status][Di ...
- [NOIP2016]换教室 D1 T3 Floyed+期望DP
[NOIP2016]换教室 D1 T3 Description 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 ...
- HDU 4336 Card Collector (期望DP+状态压缩 或者 状态压缩+容斥)
题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率,每包至多一张卡片,可能没有卡片.求需要买多少包才能拿到所以的N张卡片,求次数的期望. 析:期望DP,是很容易看出来的,然后由 ...
- 【BZOJ-4008】亚瑟王 概率与期望 + DP
4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec Memory Limit: 512 MBSec Special JudgeSubmit: 832 Solved: 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]= ...
- HDU 4405 期望DP
期望DP算是第一题吧...虽然巨水但把思路理理清楚总是好的.. 题意:在一个1×n的格子上掷色子,从0点出发,掷了多少前进几步,同时有些格点直接相连,即若a,b相连,当落到a点时直接飞向b点.求走到n ...
- POJ 2096 【期望DP】
题意: 有n种选择,每种选择对应m种状态.每种选择发生的概率相等,每种选择中对应的每种状态发生的概率相等. 求n种选择和m种状态中每种至少发生一次的期望. 期望DP好别扭啊.要用倒推的方法. dp[i ...
- ZOJ 3822 Domination 期望dp
Domination Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/showProblem ...
- poj 2096 Collecting Bugs(期望 dp 概率 推导 分类讨论)
Description Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other ...
随机推荐
- tornado设置cookie并加密
最近看看tornado,遇到了sso的东西,了解下如何设置cookie 1.基本cookie set_cookie 方法在用户的浏览中设置 cookie: get_cookie 方法在用户的浏览中获取 ...
- Leetcode-645 Set Mismatch
The set S originally contains numbers from 1 to n. But unfortunately, due to the data error, one of ...
- c++继承实例
#include <iostream> #include <vector> #include <string> using namespace std; class ...
- OSS网页上传和断点续传(OSS配置篇)
OSS网页上传和断点续传主要根据BrowserJS-SDK和相关文档整理而得,快速构建OSS上传应用 一.Bucket设置 浏览器中直接访问OSS需要开通Bucket的CORS设置 将allowed ...
- centos7 安装phpmyadmin
1.先安装epel,不然安装pgpmyadmin时会出现找不到包. yum install epel-release rpm -ivh http://rpms.famillecollet.com/en ...
- Mysql数据库中索引的概念总结
1.索引的目的是什么 1.快速访问数据表中的特定信息,提高检索速度 2.创建唯一性索引,保证数据库表中每一行数据的唯一性. 3.加速表和表之间的连接 4.使用分组和排序子句进行数据检索时,可以显著减少 ...
- MySQL中myisam与innodb的区别
1. myisam与innodb的5点不同 1>.InnoDB支持事物,而MyISAM不支持事物 2>.InnoDB支持行级锁,而MyISAM支持表级锁 3>.InnoDB支持MV ...
- rest framwork 小试身手
models.py from django.db import models class Course(models.Model): """ 课程表 "&quo ...
- SQL not exist out join
sql中exists,not exists的用法 - 飞翔-方向 积累 沉淀 - 博客园http://www.cnblogs.com/mytechblog/articles/2105785.html ...
- The New Villa
题目:The New Villa 题目链接:http://poj.org/problem?id=1137 题目大意: 一个人买了一个别墅,里面有很多房间,特别的是这个别墅的房间里灯的开关是乱套的,也就 ...