20個問題(狀壓dp)

2022-05-06 16:09:09 字數 455 閱讀 1623

有n(<=128)個物體,m(<=11)個特徵。每個物體用乙個m位01串表示,表示每個特徵是具備還是不具備。我在心裡想乙個物體,由你來猜。你每次可以詢問乙個特徵,然後我會告訴你:我心裡的物體是否具備這個特徵。當你確定答案之後,就把答案告訴我。如果你採用最優策略,最少需要詢問幾次就能保證猜到?

設s表示已經詢問的特徵集,用a來表示確認乙個物品具備的特徵集,\(d(s, a)\)表示還需詢問的最小次數。如果下乙個提問的物件是特徵k(這就是決策),那麼詢問次數為:\(max\, a+\), d(s+\, a)\}+1\)。考慮所有的k,取最小值即可。

為什麼這樣取最大值最小值呢?由於題目要我們能保證猜到,所以萬一這個物品沒有,萬一這個物品有的情況,都要考慮進去,因此裡面是max。而又因為題目讓我們採用最優策略,在保證猜到的前提下猜最少次數,所以我們要尋找最優的決策,所以外面是min。

**。。煤油。

狀壓dp 玉公尺田 狀壓dp

相關 強相關 327.玉公尺田 狀壓dp 小國王 狀壓dp 是井字形,本題是十字形。思路 狀態計算 時間複雜度 n 2 n 2n o n 22n 12 2 24n 2 n 2 n o n2 12 2 n 2n 2 n o n22n 12 224 看著妥妥超時,但是裡面合法狀態很少 依舊可以過 在此,...

狀壓dp求解TSP問題

嘗試過用貪心演算法求解tsp問題,但是並不好用,所以就用上了dp演算法。首先tsp問題滿足最優化原理 對先前決策所形成的狀態而言,其以後的所有決策都構成最優策略。通俗理解就是路徑abcdefg是最短路徑,則bcdefg必是最短路徑。所以可以判斷具有最優子結構和重疊子問題時,該問題可以用動態規劃求解。...

狀壓dp小記

鋪磚 題意 現有nm的一塊地板,需要用12的磚塊去鋪滿,中間不能留有空隙。問這樣方案有多少種 include using namespace std typedef long long ll const int maxn 1 11 int n,m,state ll dp 15 maxn s1表示本行...