【题意】n种宝物,k关游戏,每关游戏给出一种宝物,可捡可不捡。每种宝物有一个价值(有负数)。每个宝物有前提宝物列表,必须在前面的关卡取得列表宝物才能捡起这个宝物,求期望收益。k<=100,n<=15。

【算法】期望DP+状压DP

【题解】主要需要记录的状态是前缀已有宝物,所以设f[i][S]表示前i关已有宝物列表S的期望收益。

根据全期望公式,依赖于第i+1关的宝物选择:(如果列表符合)

$$f[i][S]=\sum_{i=1}^{n}\frac{1}{n}*Max(f[i+1][S'],f[i+1][S])\ \ ,\ \ S'=S|(1<<(i-1))$$

倒推是因为已知前缀列表S的情况下,很容易判断下一关宝物是否可捡。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int inf=100000;
int a[20],n,m,v[20];
double f[200][70000];
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){scanf("%d",&v[i]);int u;scanf("%d",&u);a[i]=0;while(u!=0){a[i]|=(1<<(u-1));scanf("%d",&u);}}int maxe=(1<<m)-1;for(int i=n-1;i>=0;i--){for(int j=0;j<=maxe;j++){f[i][j]=0;for(int k=1;k<=m;k++){if((a[k]&j)==a[k])f[i][j]+=max(f[i+1][j],f[i+1][j|(1<<(k-1))]+v[k]);else f[i][j]+=f[i+1][j];}f[i][j]/=m;}}printf("%.6lf",f[0][0]);return 0;
}

View Code

转载于:https://www.cnblogs.com/onioncyc/p/7220082.html

【BZOJ】1076 [SCOI2008]奖励关 期望DP+状压DP相关推荐

  1. [BZOJ 1076][SCOI2008]奖励关(期望+状压Dp)

    Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物, 每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的 ...

  2. BZOJ 1076: [SCOI2008]奖励关 [DP 期望 状压]

    传送门 题意:$n$种宝物,出现$k$次每次一种,每种宝物有价值和吃掉它之前必须要吃掉的宝物的集合,求采取最优策略的期望最大价值 1<=k<=100,1<=n<=15,分值为[ ...

  3. 1076: [SCOI2008]奖励关

    Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物, 每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的 ...

  4. [转]状态压缩dp(状压dp)

    状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴. 为了更好的理解状压dp,首先介绍位运算相关的 ...

  5. bzoj 4006 管道连接 —— 斯坦纳树+状压DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4006 用斯坦纳树求出所有关键点的各种连通情况的代价,把这个作为状压(压的是集合选择情况)的初 ...

  6. bzoj 4479: [Jsoi2013]吃货jyy 欧拉回路+状压dp

    题意 世界上一共有N个JYY愿意去的城市,分别从1编号到N.JYY选出了K个他一定要乘坐的航班.除此之外,还有M个JYY没有特别的偏好,可以乘坐也可以不乘坐的航班. 一个航班我们用一个三元组(x,y, ...

  7. 天上掉馅饼 期望dp+状压dp

    天上掉馅饼 (bonus) 题目描述 小G进入了一个神奇的世界,在这个世界,天上会掉下一些馅饼.今天,天上会随机掉下k个馅饼. 每次天上掉下馅饼,小G可以选择吃或者不吃(必须在下一个馅饼掉下来之前作出 ...

  8. SCUT - 254 - 欧洲爆破 - 概率dp - 状压dp

    https://scut.online/p/254 思路很清晰,写起来很恶心. #include<bits/stdc++.h> using namespace std; #define l ...

  9. bzoj4455 loj2091 [Zjoi2016]小星星 容斥原理+树形DP(+状压DP?)

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4455 https://loj.ac/problem/2091 题解 很不错的一道题.(不过在当 ...

最新文章

  1. perl脚本发送邮件
  2. Android中用 adb 命令操作数据库
  3. java的dispatcher_Java RequestDispatcher 详解
  4. notepad 替换行收尾字符串或在行首尾新增字符
  5. javaweb学习总结(四十二)——Filter(过滤器)学习
  6. 程序设计C++使大家容易陷入重复劳动
  7. 【ACL2019】文本摘要研究工作总结
  8. JVM中也有并发GC,CMS机制
  9. VMP学习笔记之壳基础(一)
  10. 桌面图标不见了怎么办?
  11. 机器学习之ROC曲线绘制
  12. execution(* com.xxx.*.*(..))
  13. AR涂涂乐⭐二、 给material赋予材质、移除material、调整扫描框透明度
  14. Androi移动开发基础
  15. 关于redis的BussinessName取法
  16. java excel 插入新行_excel:插入行更新公式
  17. NEW RDSP MODE I
  18. jquery的设置多个 CSS 属性
  19. oracle中的日期函数
  20. AI自动修复图片网站

热门文章

  1. getcwd和pwd为什么不一样_企业职工,公务员为什么缴纳的养老保险不一样呢?
  2. hcl启动设备失败_施耐德ATS48M10Q软启动器启动时报故障维修技术精湛
  3. 【阿里云课程】从零开始1小时快速掌握Pytorch核心功能,完成完整的项目实践...
  4. 【百战GAN】自动增强图像对比度和颜色美感,GAN如何做?
  5. 【通知】2020年有三AI-CV夏季划升级倒计时,最后两天
  6. 全球及中国冶金行业战略决策与盈利前景分析报告2022版
  7. 全球及中国固态锂电池行业需求量预测及投资规模战略报告2021-2027年
  8. 做shopee找代运营,如何判断一家代运营公司是否靠谱?
  9. php把数字转化字符串,php中把数字转化为字符串的方法有哪些?-PHP问题
  10. 粤港澳大湾区菜篮子-哲商对话·林裕豪:从玉农业谋定标准