题意: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 ;
}

最新文章

  1. Android性能分析之TraceView的使用
  2. ducument.ready不生效的问题 ruby on rails
  3. Sprint第二个冲刺(第十二天)
  4. 【技术贴】VirtualBox给VDI格式的虚拟机扩容
  5. POJ1191 棋盘分割(DP)
  6. 修复Dll文件
  7. hdu 4000 Fruit Ninja 树状数组
  8. 转载:C语言的谜题
  9. CentOS 6.8编译安装httpd2.2.31+MySQL5.6.31+PHP5.3.27
  10. Redhat Enterprise Linux中如何关闭SELinux?
  11. Cocos2d-x学习笔记(14)(更新函数scheduleUpdate、进度计时器CCProgressTo、滚动视图CCScrollView)
  12. loadrunner中如何将MD5加密的值转换为大写
  13. 在python中单线程,多线程,多进程对CPU的利用率实测以及GIL原理分析
  14. 冒泡排序 &amp; 选择排序(升序)
  15. C# 一些学习作业
  16. 2T以上磁盘格式化
  17. 关于esp32的ADC采集
  18. Json:前台对象数组传到后台解析
  19. C# 读取ini文件,读不出来原因
  20. New Concept English Two 25 67

热门文章

  1. springboot 修改文件上传大小限制
  2. javaweb基础(12)_session详解
  3. java基础——冒泡排序
  4. iOS 解决ipv6问题
  5. AutoLayout处理UITableView动态高度
  6. 【转】MFC编辑框自动换行,垂直滚动条自动下移
  7. 【线段树 扫描线 二维数点】loj#6276. 果树
  8. svn提交报错,提示:locked,需要cleanup
  9. python面试题之python多线程与多进程的区别
  10. 我的Python分析成长之路7