博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 P2473 [SCOI2008]奖励关 ( 期望DP )
阅读量:5143 次
发布时间:2019-06-13

本文共 918 字,大约阅读时间需要 3 分钟。

题意 : 中文题、点链接

 

分析 :

第一道有关概率期望的DP

有个大部分情况下通用的结论

概率正推、期望反推

原因不明、其实是没有查到较好的解释

这题由于有一些取物品的先决条件在这里

而且观察到题目 n 并不是很大

果断选择状压来解决

这题定义 dp[i][j] 到第 i 回合、拿过物品状态为 j 的情况的最优值是什么

转移的时候、第一维倒序枚举回合、第二维枚举状态、然后第三维枚举每个物品

如果当前状态包含了当前枚举到的物品的先决物品的话

则有转移 dp[i][j] += max( dp[i+1][j]、dp[i+1][j | (1<<k)] + val[k] ) / n

否则 dp[i][j] += dp[i+1][j] / n

 

#include
using namespace std;double dp[105][(1<<16) + 10];int Pre_State[20], val[20];int main(void){ int Times, n; scanf("%d %d", &Times, &n); for(int i=1; i<=n; i++){ scanf("%d", &val[i]); int pre; while(~scanf("%d", &pre) && pre){ Pre_State[i] |= (1<
=0; i--){ for(int s=0; s<(1<<(n+1)); s++){ for(int j=1; j<=n; j++){ if((s & Pre_State[j]) == Pre_State[j]){ dp[i][s] += max(dp[i+1][s], dp[i+1][s | (1<
View Code

 

转载于:https://www.cnblogs.com/LiHior/p/9543516.html

你可能感兴趣的文章
java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查
查看>>
Nginx多域名配置
查看>>
使用Reporting Services时遇到的小问题
查看>>
传递事件和传递命令系统···
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
Database、User、Schema、Tables、Col、Row
查看>>
ckplayer网页播放器简易教程
查看>>
Android Studio 学习(六)内容提供器
查看>>
作业1:求500到1000之间有多少个素数,并打印出来
查看>>
for循环:用turtle画一颗五角星
查看>>
浅谈JavaScript中的eval()
查看>>
操作系统学习(七) 、保护机制概述
查看>>
Android中的自定义控件(一)
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
【知识整理】这可能是最好的RxJava 2.x 入门教程(一)
查看>>
为什么要重写hashcode方法和equals方法
查看>>
【Mysql】索引简介
查看>>
[luogu1073 Noip2009] 最优贸易 (dp || SPFA+分层图)
查看>>