bzoj 1076 奖励关 状压+期望dp
因为每次选择都是有后效性的,直接dp肯定不行,所以需要逆推。
f[i][j]表示从第i次开始,初始状态为j的期望收益
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int bit[18],K,n,aa,ned[18],a[18];
double f[105][1<<17];
int main()
{bit[0]=1;for(int i=1;i<=16;i++) bit[i]=bit[i-1]<<1;scanf("%d%d",&K,&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);scanf("%d",&aa);while(aa){ned[i]|=bit[aa-1];scanf("%d",&aa);}}for(int i=K;i>=1;i--)for(int j=0;j<bit[n];j++){for(int k=1;k<=n;k++){if((j&ned[k])==ned[k])f[i][j]+=max(f[i+1][j],f[i+1][j|bit[k-1]]+a[k]);elsef[i][j]+=f[i+1][j];}f[i][j]/=n;}printf("%0.6lf\n",f[1][0]);return 0;
}
转载于:https://www.cnblogs.com/Ren-Ivan/p/7746765.html
bzoj 1076 奖励关 状压+期望dp相关推荐
- P2473 奖励关 状压概率DP求期望
题目链接 https://www.luogu.com.cn/problem/P2473 题意 n轮,m种球,每轮随即一个球,可以接可以不接,接的话需要满足这个球的前置条件(比如3号球接球必须已经接过1 ...
- 2021 ccpc 哈尔滨 G. Damaged Bicycle 状压 + 期望dp
文章目录 题意: 思路: 传送门 题意: 你需要从111走到nnn,初始速度是ttt,某些地方有自行车,每个位置自行车有pip_ipi的概率是坏掉的,如果自行车没坏可以骑上自行车,速度是rrr,可以 ...
- HDU 4336 Card Collector(状压 + 概率DP 期望)题解
题意:每包干脆面可能开出卡或者什么都没有,一共n种卡,每种卡每包爆率pi,问收齐n种卡的期望 思路:期望求解公式为:$E(x) = \sum_{i=1}^{k}pi * xi + (1 - \sum_ ...
- BZOJ 2073: [POI2004]PRZ( 状压dp )
早上这道题没调完就去玩NOI网络同步赛了.... 状压dp , dp( s ) 表示 s 状态下所用的最短时间 , 转移就直接暴力枚举子集 . 可以先预处理出每个状态下的重量和时间的信息 . 复杂度是 ...
- BZOJ 4000: [TJOI2015]棋盘( 状压dp + 矩阵快速幂 )
状压dp, 然后转移都是一样的, 矩阵乘法+快速幂就行啦. O(logN*2^(3m)) ------------------------------------------------------- ...
- BZOJ 2004 公交线路(状压DP+矩阵快速幂)
注意到每个路线相邻车站的距离不超过K,也就是说我们可以对连续K个车站的状态进行状压. 然后状压DP一下,用矩阵快速幂加速运算即可. #include <stdio.h> #include ...
- bzoj 2073:[POI2004]PRZ 状压DP
Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍在桥上的人都不能超过一定的限制. 所以这只队伍 ...
- BZOJ 2560: 串珠子 (状压DP+枚举子集补集+容斥)
(Noip提高组及以下),有意者请联系Lydsy2012@163.com,仅限教师及家长用户. 2560: 串珠子 Time Limit: 10 Sec Memory Limit: 128 MB Su ...
- bzoj4565 [HAOI2016]字符合并 结论+状压+区间dp
如果k==2的话就是记搜, 但这个题用记搜的思路的话是需要枚举k个断点的, 所以对于枚举断点,就很可能有优化,比如到一个断点,一个决策的最优值 于是考虑区间dp模型,相当于是插入一个数,然后看影响. ...
最新文章
- 激光打标软件_走向工业自动化生产之路——激光飞行打标
- 如何动态添加菜单/菜单项、子菜单、右键菜单
- spark rdd saveAsTextFile保存为文件
- CTFshow 命令执行 web31
- 网络编程(32)—— linux中销毁僵尸进程的四种方法
- ios mysql注册登录界面_iOS+PHP实现登录功能
- 分析师称iPhone 13将支持卫星通信,但仅限特定市场
- python 获取当前目录,上级目录,上上级目录
- 怎么学习PLC技术?
- 实验九 TCP 协议分析实验
- assimp android build,Windows环境下编译Assimp库生成Android可用的.so或.a文件
- Python3使用SMTP协议发送电子邮件
- window设置oracle sid,window下改oracle_sid
- Android中使用AudioManager实现按键录音并保存以及点击播放功能
- VM虚拟机更换网络环境后无法连接网络
- 统计学 统计值判断标准
- 【Python】制作圆角图像的两种方案对比
- CAN与CANOpen(一)
- python 发红包import random用redenv_python 发红包
- 计算带余除法------C语言
热门文章
- 数据结构之链表及实现
- selenium——元素的定位
- CountDownLatch和cyclicbarrier的使用
- 题目1008:最短路径问题(SPFA算法)
- 【C++】C++为什么要引入引用这个复合类型?
- [翻译]NUnit---Explicit and Ignore Attributes(十二)
- IT公司组织机构和职位、职位职责
- 1.4 多项式拟合实例
- tarfile读文件python_Python中使用tarfile压缩、解压tar归档文件示例
- 系统待办事项设计_B端产品工作台设计详解