多重部分和問題

2021-07-16 05:24:24 字數 648 閱讀 1382

/*1149: 多重部分和問題

時間限制: 1 sec  記憶體限制: 128 mb

提交: 25  解決: 6

[提交][狀態][討論版]

題目描述

有n中不同大小的數字ai,每種各mi個。判斷是否可以從這些數字之中選出若干使他們的大小恰好為k.

限制條件

1<=n<=100

1<=ai,mi<=100000

1<=k<=100000

輸入多組資料。

第一行n。第二行不同的數字ai.第三行對應數字擁有的個數

輸出能挑選若干恰好和為k則輸出「yes」,反之輸出「no」.

樣例輸入13

3 5 8

3 2 2

17樣例輸出

yes*/

#include

#include

#define max(a,b) a>b?a:b

int dp[100010];

int main()

for(i=0;i

scanf("%d",&k);

for(i=0;i

}if(dp[k]==k)

}if(dp[k]!=k)

printf("no\n");

}return 0;

}

多重部分和問題

有 n 種物品,第i種物品的每個物品的價值是 ai 數目是 mi 判斷是否可以選擇若干數字使得價值和是k。1 n 100 1 ai,m i,10 5 1 k 105 看作揹包大小是k,物品的價值和體積都是ai 物品數目是 mi 的多重揹包。如果最大價值是 k 的話就是可以選出,否則便是不能選出。利用...

多重部分和問題

有n種不同大小的數字a i 每種各m i 個。判斷是否可以從這些數字之中選出若干使它們的和恰好為k。dp i 表示以a i 為末尾的最長上公升子串行的長度。include include include includeusing namespace std define maxn 10010 int...

多重部分和問題

有n種不同大小的數字a i 每種各m i 個。判斷是否可以從這些數字中選出若干使它們的和恰好為k。限制條件 1 n 100,1 a i m i 100000,1 k 100000 這個問題可以用dp求解,如何定義遞推式影響最後的時間複雜度。定義dp i 1 j 用前i 1種數字 數字的編號是從0到i...