#数学期望,状压dp,记忆化搜索#nssl 1468 V
分析
赛时写了个\(O(n!)\)的纯暴力,其实我现在才发现\(O(n!)\)的暴力一般都能用\(O(n2^n)\)的状压dp解决
但是其实不是每个状态都能被访问到,所以若\(n\)过大,用\(map\)存,否则用数组存,还有记忆化搜索优化时间,反正能过
代码
#include <cstdio>
#include <map>
#define rr register
using namespace std;
const int N=31,M=24; int n,k,now;
struct either{
double ku[(1<<M)|1];
map<int,double>uk[N];
inline void Init(){for (rr int i=0;i<=(1<<M);++i) ku[i]=-1;}
inline bool check(int now,int len){return len<M?(ku[(1<<len)|now]!=-1):uk[len].count(now);}
inline double &Get(int now,int len){return len<M?ku[(1<<len)|now]:uk[len][now];}
}T;
inline signed shift(int now,int len){return ((now>>(len+1))<<len)|(now&((1<<len)-1));}
inline double dfs(int now,int len){
if (len<=k) return 0;
if (T.check(now,len)) return T.Get(now,len);
rr double &ans=T.Get(now,len); ans=0;
for (rr int i=0,j=len-1;i<=j;++i,--j){
rr double t1=dfs(shift(now,i),len-1)+((now>>i)&1);
if (i==j) {ans+=t1; continue;}
rr double t2=dfs(shift(now,j),len-1)+((now>>j)&1);
ans+=2*(t1>t2?t1:t2);
}
return ans/=len;
}
signed main(){
scanf("%d%d",&n,&k),k=n-k,T.Init();
for (rr int i=0;i<n;++i){
rr char c=getchar();
while (c!='W'&&c!='B') c=getchar();
now|=(c=='W')<<i;
}
return !printf("%lf",dfs(now,n));
}
#数学期望,状压dp,记忆化搜索#nssl 1468 V的更多相关文章
- 状压DP+记忆化搜索 UVA 1252 Twenty Questions
题目传送门 /* 题意:给出一系列的01字符串,问最少要问几个问题(列)能把它们区分出来 状态DP+记忆化搜索:dp[s1][s2]表示问题集合为s1.答案对错集合为s2时,还要问几次才能区分出来 若 ...
- [JZOJ5398]:Adore(状压DP+记忆化搜索)
题目描述 小$w$偶然间见到了一个$DAG$. 这个$DAG$有$m$层,第一层只有一个源点,最后一层只有一个汇点,剩下的每一层都有$k$个节点. 现在小$w$每次可以取反第$i(1<i< ...
- loj 1021(状压dp+记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25887 题目大意:给定的一个某进制下的排列,问它的全排列有多少个能 ...
- loj 1018(状压dp+记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25844 思路:首先预处理出点在同一直线上的所有的点集状态(dp[i ...
- UVa 10817 Headmaster's Headache (状压DP+记忆化搜索)
题意:一共有s(s ≤ 8)门课程,有m个在职教师,n个求职教师.每个教师有各自的工资要求,还有他能教授的课程,可以是一门或者多门. 要求在职教师不能辞退,问如何录用应聘者,才能使得每门课只少有两个老 ...
- UVa 1252 (状压DP + 记忆化搜索) Twenty Questions
题意: 有n个长为m的各不相同的二进制数(允许存在前导0),别人已经事先想好n个数中的一个数W,你要猜出这个数. 每次只可以询问该数的第K为是否为1. 问采用最优询问策略,则最少需要询问多少次能保证猜 ...
- UVa 10817 (状压DP + 记忆化搜索) Headmaster's Headache
题意: 一共有s(s ≤ 8)门课程,有m个在职教师,n个求职教师. 每个教师有各自的工资要求,还有他能教授的课程,可以是一门或者多门. 要求在职教师不能辞退,问如何录用应聘者,才能使得每门课只少有两 ...
- UVa 1252 Twenty Questions (状压DP+记忆化搜索)
题意:有n件物品,每件物品有m个特征,可以对特征进行询问,询问的结果是得知某个物体是否含有该特征,要把所有的物品区分出来(n个物品的特征都互不相同), 最小需要多少次询问? 析:我们假设心中想的那个物 ...
- UVA - 10817 Headmaster's Headache (状压dp+记忆化搜索)
题意:有M个已聘教师,N个候选老师,S个科目,已知每个老师的雇佣费和可教科目,已聘老师必须雇佣,要求每个科目至少两个老师教的情况下,最少的雇佣费用. 分析: 1.为让雇佣费尽可能少,雇佣的老师应教他所 ...
- 【BZOJ】1415 [Noi2005]聪聪和可可 期望DP+记忆化搜索
[题意]给定无向图,聪聪和可可各自位于一点,可可每单位时间随机向周围走一步或停留,聪聪每单位时间追两步(先走),问追到可可的期望时间.n<=1000. [算法]期望DP+记忆化搜索 [题解]首先 ...
随机推荐
- Vulnhub靶机网卡启动失败(Raise network interfaces)
问题 使用一些Linux靶机进行搭建后可能会出现无法搜索到IP的情况,并且会在系统启动时报错,类似下图所示 这个主要是因为vulnhub上的镜像由于搭建环境.版本等问题不适配,网卡没有正确识别导致的, ...
- CentOS8安装Geant4笔记(二):CentOS8安装Qt5.15.2并测试运行环境
前言 在服务器CentOs8.2上安装geant4软件,但是运行不起来,所以本节开始主要是安装qt,测试qt基本功能. 要点 添加qt环境到系统环境中,是geant4启动qt的必要条件. ...
- 内存管理机制 & 垃圾回收机制
内存管理机制 python是由c开发出来的. 看源码分析,下载python安装包tar包 解压后主要看Include和Objects这两个文件夹 # 分析 在创建对象时,如 v = 0.3 源码内部: ...
- 关于“非法的前向引用(illegal forward reference)”的探究
1.问题: 有如下代码: public class Test { static { i = 0;// 给变量赋值可以正常编译通过 System.out.print(i);// 编译器会提示" ...
- 08、Etcd 中MVCC原理
本篇内容主要来源于自己学习的视频,如有侵权,请联系删除,谢谢. 1.什么是 MVCC MVCC(Multiversion concurrency control)是一个基于多版本技术实现的一种并发控制 ...
- 【Azure 存储服务】Blob中数据通过Stream Analytics导出到SQL/Cosmos DB
问题描述 Json格式的数据目前是存储在Azure Blob中,如何将这些数据Load到Sql DB和CosmosDB中呢? 测试方案 使用Azure流分析服务(Stream Analytics)功能 ...
- 【Azure 应用服务】App Service多个部署槽(Slot)之间,设置Traffic百分比后,如何来判断请求是由那一个槽(Slot)来进行处理呢?
问题描述 当我们部署应用到App Service后,为了实现对生成的最小影响,通常是把新版本部署在一个预生产的槽中,然后进行验证.另一方面,为了进行A/B验证,需要把生成槽的流量,切入一部分到预生产槽 ...
- vim 学习总结
vim 学习总结 一.介绍 vi 编辑器是所有 Unix 及 Linux 系统下标准的编辑器,类似于 Windows 系统下的 notepad(记事本)编辑器.在 Unix 及 Linux 系统的任何 ...
- vue-simple-uploader 上传组件 用js调用 打开窗口上传
为什么有这个需求 需要弹框 让用户填些数据后,再进行上传,所以不能先点击上传按钮 重点1:添加id <uploader-btn :single="true" id=" ...
- Redis持久化之RDB(Redis DataBase) 和 AOF(Append Only File)
Redis提供了两种持久化方式:RDB(Redis DataBase)和AOF(Append Only File). 1. RDB持久化: RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁 ...