bzoj1076【SCOI2008】奖励关
2024-10-08 08:29:48
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1076
有n种物品等概率落下,求期望最优收益
sol: 一眼看上去就是状压dp吧QAQ数据范围就能看出来啦
f[i][j]表示前i次状态为j的答案
每次对于每个物品都需要转移一遍,三个for即可
为避免从无效状态转到有效状态,i倒着扫即可
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int n,K,pow[],val[],pre[];
double f[][];
int main()
{
pow[]=;for(int i=;i<;i++) pow[i]=pow[i-]*;
scanf("%d%d",&K,&n);
for(int i=;i<=n;i++)
{
scanf("%d",&val[i]);
while()
{
int tmp;scanf("%d",&tmp);
if(tmp!=) pre[i]+=pow[tmp];
else break;
}
}
for(int i=K;i>=;i--)
for(int j=;j<pow[n+];j++)
{
for(int k=;k<=n;k++)
{
if((pre[k]&j)==pre[k])
f[i][j]+=max(f[i+][j],f[i+][j|pow[k]]+val[k]);
else f[i][j]+=f[i+][j];
}
f[i][j]/=n;
}
printf("%.6lf",f[][]);
return ;
}
最新文章
- Android性能分析之TraceView的使用
- ducument.ready不生效的问题 ruby on rails
- Sprint第二个冲刺(第十二天)
- 【技术贴】VirtualBox给VDI格式的虚拟机扩容
- POJ1191 棋盘分割(DP)
- 修复Dll文件
- hdu 4000 Fruit Ninja 树状数组
- 转载:C语言的谜题
- CentOS 6.8编译安装httpd2.2.31+MySQL5.6.31+PHP5.3.27
- Redhat Enterprise Linux中如何关闭SELinux?
- Cocos2d-x学习笔记(14)(更新函数scheduleUpdate、进度计时器CCProgressTo、滚动视图CCScrollView)
- loadrunner中如何将MD5加密的值转换为大写
- 在python中单线程,多线程,多进程对CPU的利用率实测以及GIL原理分析
- 冒泡排序 &; 选择排序(升序)
- C# 一些学习作业
- 2T以上磁盘格式化
- 关于esp32的ADC采集
- Json:前台对象数组传到后台解析
- C# 读取ini文件,读不出来原因
- New Concept English Two 25 67