狀壓dp JZOJ 3853 幫助Bsny

2022-06-12 23:39:16 字數 869 閱讀 4858

一共有\(n\)本書,混亂值是連續相同高度書本的段數。

可以取出\(k\)本書隨意放回,問最小混亂值,高度\([25\sim 32]\)

設\(f[i][j][k][mask]\)表示前\(i\)本書已經抽出了\(j\)本,前\(i\)本中沒被抽出的

書裡最後一本書的高度是\(k\),\(mask\)是乙個\(0\sim 2^8-1\)的二進位制,表示前\(i\)本中沒被

抽出的書裡高度的存在情況。整體表示前\(i\)本書中沒被抽出的書組成的序列的最小混亂度。

然後列舉第\(i\)本書是否被抽出。

#include #include #define rr register

using namespace std;

const int po[9]=; bool v[101];

int b[101],dp[2][101][11][261],top,c[101],t[101],n,m,a[101];

inline void min(int &a,int b)

signed main()

for (rr int i=top;i;--i)

memset(dp[0],42,sizeof(dp[0]));

dp[0][0][0][0]=0;

for (rr int i=1;i<=top;++i)

} rr int ans=2e9;

for (rr int i=0;i<=m;++i)

for (rr int j=0;j<9;++j)

for (rr int k=0;kmin(ans,dp[top&1][i][j][k]);

return !printf("%d",ans);

}

狀壓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小記

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

狀壓dp學習

p2704 炮兵陣地 1038 裁玻璃 狀壓dp是一種非常暴力的做法,列舉所有可能的狀態,找到要求的最佳狀態,與一般dp不同,前一項與後一項有一些複雜的狀態關係。dp的引數 物品個數 行數等 當前狀態 上乙個狀態 將abc的有無表示成乙個8個狀態,列舉所有組,列舉上乙個狀態,得到當前狀態的最優解 i...