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。

    代码。。煤油。

  • 相关阅读:
    docker 部署 zabbix
    docker 搭建私有云仓库
    doeker部署zabbix
    LVS
    zabbix安装与配置
    keepalive
    Shell编程(5)
    Shell编程(4)
    Shell编程(3)
    几种Toast用法
  • 原文地址:https://www.cnblogs.com/MyNameIsPc/p/8892705.html
Copyright © 2011-2022 走看看