洛谷2473(SCOI2008)奖励关
题目:https://www.luogu.org/problemnew/show/P2473
因为可不可选此物与之前选过什么物品有关,所以状态可以记录成前面已经选过什么物品。
因为选不选此物与它带来的贡献有关,而它的情况又会影响后面,所以值倒着推。
自己混乱的地方是状态,原来只需:本次此物是否是1无关,从它转移过来的那个状态此物必须是1,所以 | 一个就行!
因为是概率,所以各处/n,可以合并成算完后再/n。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=;
int n,m,list[N+];
double dp[][(<<N)+],c[N+];
int main()
{
scanf("%d%d",&m,&n);int x,lm=(<<n);
for(int i=;i<=n;i++)
{
scanf("%lf",&c[i]);
while()
{
scanf("%d",&x);if(!x)break;
list[i]|=(<<(x-));
}
}
for(int i=m;i;i--)
{
for(int j=;j<lm;j++)
{
for(int k=;k<=n;k++)
{
if((j&list[k])==list[k])
dp[][j]+=max(dp[][j|(<<(k-))]+c[k],dp[][j]);
else {
dp[][j]+=dp[][j];
}
}
dp[][j]/=n;
}
memcpy(dp[],dp[],sizeof dp[]);
memset(dp[],0.0,sizeof dp[]);
}
printf("%.6lf",dp[][]);
return ;
}
洛谷2473(SCOI2008)奖励关的更多相关文章
- 洛谷 P2473 [SCOI2008]奖励关 解题报告
P2473 [SCOI2008]奖励关 题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出\(k\)次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝 ...
- 洛谷 P2473 [SCOI2008]奖励关(状压dp+期望)
题面 luogu 题解 \(n \leq 15\) 状压 \(f[i][S]\)表示第\(i\)轮,吃过的集合为\(S\) 正着转移好像有点复杂 考虑逆推转移(正着转移应该也行) \(f[i][S]\ ...
- 洛谷P2473 [SCOI2008]奖励关(期望+状压)
传送门 我数学期望还是太差了…… 先考虑状压模型,设$dp[i][S]$表示第$i$轮,当前宝物状态为$S$,能获得的最大期望分数 然而这个模型有一个问题,第$i$轮不一定能达到状态$S$ 那么考虑转 ...
- 洛谷 P2473 [SCOI2008]奖励关 ( 期望DP )
题目链接 题意 : 中文题.点链接 分析 : 第一道有关概率期望的DP 有个大部分情况下通用的结论 概率正推.期望反推 原因不明.其实是没有查到较好的解释 这题由于有一些取物品的先决条件在这里 而且观 ...
- 【洛谷】2473:[SCOI2008]奖励关【期望DP(倒推)】
P2473 [SCOI2008]奖励关 题目背景 08四川NOI省选 题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不 ...
- 【BZOJ1076】[SCOI2008]奖励关 状压DP+期望
[BZOJ1076][SCOI2008]奖励关 Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须 ...
- 1076: [SCOI2008]奖励关( dp )
期望状压dp.... ------------------------------------------------------------------ #include<cstdio> ...
- BZOJ_1076_[SCOI2008]奖励关_状压DP
BZOJ_1076_[SCOI2008]奖励关_状压DP 题意: 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物, 每次你都可以选择吃或者不吃(必须在抛 ...
- LG P2473 [SCOI2008]奖励关
题目链接:P2473 [SCOI2008]奖励关 题意:有n个宝物 每次等概率抛出其中之一一共抛出k次每个宝物有一个价值 和一个前提集合只有集齐了集合中的所有宝物 才可以领取这个宝物 范围:1 < ...
随机推荐
- c++第二十四天
p126~p128: 1.关系运算符作用于算数类型和指针类型. 2.逻辑运算符作用于任意能转换成布尔类型值的类型. 3.以上两种运算的运算对象和运算结果都是右值. 4.逻辑与和逻辑或的运算策略:短路求 ...
- 端口安全检查shell脚本
#!/bin/bash #This script name is scan_analyse.sh . /etc/profile echo "start time is $(date)&quo ...
- 20189215《Linux内核原理与分析》第一周作业
实验1 Linux系统简介 本节主要学习了 Linux 的历史,Linux 与 Windows 的区别等入门知识.通过学习,我明确了目的,是要用 Linux 来做程序开发.搭建服务器等:并且非常接受不 ...
- TypeScript 照猫画虎
定义变量类型 const num: number = 1 定义函数参数类型 const init: (p: str) => void = function(param) { alert(para ...
- HDU6447 网络赛 YJJ's Salesman(DP + 线段树)题解
思路:若用dp[i][j]表示走到(i,j)的最大值,那么dp[i][j] = max(dp[i - 1][j],dp[i][j - 1],dp[i - 1][j - 1] + v),显然O(n^2) ...
- 单例模式(Singleton-Pattern)百媚生
1 动机 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号 ...
- mongo学亮的分享
# MongoDB 集群部署## 关键词* 集群* 副本集* 分片## MongoDB集群部署>今天主要来说说Mongodb的三种集群方式的搭建Replica Set副本集 / Sharding ...
- ubuntu 10.04 安装arm交叉编译器
家里有一台cotext-A9(armv7-a) 的盒子,现在不用了, 一直想着废物利用.于是想怎么为这盒子编译程序. 目标机器: root@routon-h1:/# uname -a Linux ro ...
- Eclipse开发Android应用 找不到平板
1.驱动安装正确2.平板的连接方式正确,不要用大容量存储/sd卡模式这个设置在4.3上很难找呀.设置->存储->点右上角的菜单 3.打开USB调试.4.上述问题都检查后,在eclipse里 ...
- 微信小程序引入md5.js
今天给大家安利一下微信小程序引入md5.js的方法,不多说 md5.js在下面 直接复制到项目的utils/md5.js即可 /* * A JavaScript implementation of t ...