博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4336 Card Collector(状压dp/Min-Max反演)
阅读量:5375 次
发布时间:2019-06-15

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

解题思路

  第一种方法是状压\(dp\),设\(f(S)\)为状态\(S\)到取完的期望步数,那么\(f(S)\)可以被自己转移到,还可以被\(f(S|(1<<i))\)转移到,\(i\)\(S\)中没有的一个元素。

  第二种方法是\(Min-Max\)反演,要求的其实就是\(max(S)\),反演得\(max(S)=\sum\limits_{T\subseteq S}min(T)\),而\(min(T)=\sum p(i)\)(\(i\)\(T\)的子集)。

代码

状压

#include
#include
#include
#include
#include
using namespace std;const int N=20;int n;double p[N+2],ans,f[(1<

\(Min-Max\)反演

#include
#include
#include
using namespace std;const int N=22;int n;double ans,p[N];int main(){ while(~scanf("%d",&n)){ ans=0; for(int i=1;i<=n;i++) scanf("%lf",&p[i]); for(int S=1;S<(1<

转载于:https://www.cnblogs.com/sdfzsyq/p/10268416.html

你可能感兴趣的文章
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
Data Structure 基本概念
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
As-If-Serial 理解
查看>>
洛谷P1005 矩阵取数游戏
查看>>
无线通信基础(一):无线网络演进
查看>>
关于python中带下划线的变量和函数 的意义
查看>>
linux清空日志文件内容 (转)
查看>>
MySQL-EXPLAIN执行计划Extra解释
查看>>
图片点击轮播(三)-----2017-04-05
查看>>
java中new一个对象和对象=null有什么区别
查看>>
01_1_准备ibatis环境
查看>>
spring注入Properties
查看>>
jmeter(五)创建web测试计划
查看>>
1305: [CQOI2009]dance跳舞 - BZOJ
查看>>
hash储存机制
查看>>
OpenLayers绘制图形
查看>>
洛谷 P1991 无线通讯网
查看>>