描述:
在大學裡每個學生,為了達到一定的學分,必須從很多課程裡選擇一些課程來學習,在課程裡有些課程必須在某些課程之前學習,如高等數學總是在其它課程之前學習。現在有 n 門功課,每門課有個學分,每門課有一門或沒有直接先修課(若課程a是課程b的先修課即只有學完了課程a,才能學習課程b)。乙個學生要從這些課程裡選擇 m 門課程學習,問他能獲得的最大學分是多少?
n^3做法
void dfs(intview codex) }
n^2做法
#include usingnamespace
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 ...