樹型揹包 模板

2022-05-31 13:33:12 字數 662 閱讀 5420

描述:

在大學裡每個學生,為了達到一定的學分,必須從很多課程裡選擇一些課程來學習,在課程裡有些課程必須在某些課程之前學習,如高等數學總是在其它課程之前學習。現在有 n 門功課,每門課有個學分,每門課有一門或沒有直接先修課(若課程a是課程b的先修課即只有學完了課程a,才能學習課程b)。乙個學生要從這些課程裡選擇 m 門課程學習,問他能獲得的最大學分是多少?

n^3做法

void dfs(int

x) }

view code

n^2做法

#include using

namespace

std;

intn,m;

struct

edged[

1009

];int rt,head[1009],tot,val[1009],dp[1009][1009],cnt=1

;void add(int u,int

v)//

定義dp[u][t]為以u為根的子樹選t門課的最大收益

void dfs(int u,intt)}

intmain()

dfs(

0,m);//

0是根節點

cout<0][m];//

選m門課程

}

01揹包模板 完全揹包 and 多重揹包(模板)

模版就直接貼 01揹包模板 cpp view plain copy print?01揹包問題 01揹包問題的特點是,每種物品僅有一件,可以選擇放或不放。01揹包問題描述 有n件物品和乙個容量為v的揹包。第i件物品的重量是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的重量總和不超過揹包容量...

01揹包模板 完全揹包 and 多重揹包(模板)

01揹包模板 01揹包問題 01揹包問題的特點是,每種物品僅有一件,可以選擇放或不放。01揹包問題描述 有n件物品和乙個容量為v的揹包。第i件物品的重量是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的重量總和不超過揹包容量,且價值總和最大。include define n 1050017...

01揹包模板 全然揹包 and 多重揹包(模板)

模版就直接貼 01揹包模板 01揹包問題 01揹包問題的特點是,每種物品僅有一件。能夠選擇放或不放。01揹包問題描寫敘述 有n件物品和乙個容量為v的揹包。第i件物品的重量是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的重量總和不超過揹包容量,且價值總和最大。include define ...