zoukankan      html  css  js  c++  java
  • 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。

    代码。。煤油。

  • 相关阅读:
    http uri唯一标识
    http协议
    python模块 sys
    file 文件的操作
    库的介绍及使用
    python os模块
    python的序列化与反序列化
    python 字典的定义以及方法
    python字符串的常用方法
    在Windows下使用adb logcat grep
  • 原文地址:https://www.cnblogs.com/MyNameIsPc/p/8892705.html
Copyright © 2011-2022 走看看