P1064 金明的預算方案

2022-08-13 11:03:15 字數 907 閱讀 2743

思路:觀察題面的描述,不難發現對於每個主件,最多隻存在有2個附件,所以我們可以對每乙個主件進行暴力列舉。在01揹包的for迴圈中,對於每乙個主件,有五種選擇:

1.不買該主件。 2.僅買該主件。 3.買主件和附件1. 4.買主件和附件2. 5.買主件以及兩個附件。

code:

#include #include #include #include #include #include #include using namespace std;

//mystery_sky

//#define m 1000010

#define inf 0x3f3f3f3f

#define ll long long

inline int read()

while(c >= '0' && c <= '9')

return x*f;

}int n, m;

int v[m], q[m], p[m];

int f[32001];

vector root;

vector son[60];

int tot[m], sum;

int new_v[m], new_q[m], new_p[m];

int main()

int new_m = 0;

for(int i = 0; i < sum; i++)

if(tot[root[i]] >= 2)

} }printf("%d\n", f[n]);

return 0;}/*

1000 5

800 2 0

400 5 1

300 5 1

400 3 0

500 2 0

2200

*/

P1064 金明的預算方案

原題鏈結 本來是道dp題,我們拿來練搜尋了 雖然最後還是寫了dp 一開始的時候把每個情況都單獨拿出來了變成01揹包 但是有可能出現 選了主件a 選了主件a和附件a1 同時被選中的情況 這樣當然就不符合題意了呀 因為每個主件頂多只有兩個附件所以可以列舉情況直接變成分組揹包 每組裡面只能選乙個 incl...

P1064 金明的預算方案

金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間金明自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說 你的房間需要購買哪些物品,怎麼布置,你說了算,只要不超過n元錢就行 今天一早,金明就開始做預算了,他把想買的物品分為兩類 主件與附件,附件是從屬於某個主件的,下表就是一些主件與附件的例...

P1064 金明的預算方案

輸入 1000 5 800 2 0 400 5 1 300 5 1 400 3 0 500 2 0 輸出 2200這道題是一道依賴揹包問題,所謂依揹包就是i依賴於j,表示若選物品i,則必須選物品j。為了簡化起見,我們先設沒有某個物品既依賴於別的物品,又被別的物品所依賴 另外,沒有某件物品同時依賴多件...