20个问题(状压dp)
Posted mynameispc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20个问题(状压dp)相关的知识,希望对你有一定的参考价值。
20个问题(状压dp)
有n(<=128)个物体,m(<=11)个特征。每个物体用一个m位01串表示,表示每个特征是具备还是不具备。我在心里想一个物体,由你来猜。你每次可以询问一个特征,然后我会告诉你:我心里的物体是否具备这个特征。当你确定答案之后,就把答案告诉我。如果你采用最优策略,最少需要询问几次就能保证猜到?
设s表示已经询问的特征集,用a来表示确认一个物品具备的特征集,\(d(s, a)\)表示还需询问的最小次数。如果下一个提问的对象是特征k(这就是决策),那么询问次数为:\(max\{d(s+\{k\}, a+\{k\}), d(s+\{k\}, a)\}+1\)。考虑所有的k,取最小值即可。
为什么这样取最大值最小值呢?由于题目要我们能保证猜到,所以万一这个物品没有,万一这个物品有的情况,都要考虑进去,因此里面是max。而又因为题目让我们采用最优策略,在保证猜到的前提下猜最少次数,所以我们要寻找最优的决策,所以外面是min。
代码。。煤油。
以上是关于20个问题(状压dp)的主要内容,如果未能解决你的问题,请参考以下文章
SCUT - 254 - 欧洲爆破 - 概率dp - 状压dp
BZOJ4565HAOI2016字符合并 [状压DP][区间DP]