試題 I 糖果 (狀壓dp)

2021-09-19 04:44:38 字數 929 閱讀 5329

【問題描述】

糖果店的老闆一共有 m 種口味的糖果**。為了方便描述,我們將 m 種口味編號 1 ∼ m。

小明希望能品嚐到所有口味的糖果。遺憾的是老闆並不單獨**糖果,而 是 k 顆一包整包**。

幸好糖果包裝上註明了其中 k 顆糖果的口味,所以小明可以在買之前就知道每包內的糖果口味。

給定 n 包糖果,請你計算小明最少買幾包,就可以品嚐到所有口味的糖果。

【輸入格式】

第一行包含三個整數 n、m 和 k。

接下來 n 行每行 k 這整數 t1, t2, · · · , tk,代表一包糖果的口味。

【輸出格式】

乙個整數表示答案。如果小明無法品嚐所有口味,輸出 −1。

【樣例輸入】

6 5 3

1 1 2

1 2 3

1 1 3

2 3 5

5 4 2

5 1 2

【樣例輸出】

2【評測用例規模與約定】

對於 30% 的評測用例,1 ≤ n ≤ 20 。

對於所有評測樣例,1 ≤ n ≤ 100,1 ≤ m ≤ 20,1 ≤ k ≤ 20,1 ≤ ti ≤ m。

int s[105];//代表第i包糖果

int main()

{ memset(dp,-1,sizeof(dp));

scanf("%d%d%d",&n,&m,&k);

for(int i=0;icopy的erge1998blog

狀壓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...