luogu 2014 选课 树上背包
生活随笔
收集整理的這篇文章主要介紹了
luogu 2014 选课 树上背包
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
樹上背包
#include<bits/stdc++.h>using namespace std;const int N=310; const int inf=0x3f3f3f3f; vector<int> son[N]; int f[N][N],s[N],n,m;void dfs(int u){f[u][0]=0;for(int i=0;i<son[u].size();i++){int v=son[u][i];dfs(v);for(int j=m;j>0;j--)for(int k=j;k>=0;k--)if(j-k>=0) f[u][j]=max(f[u][j],f[u][j-k]+f[v][k]);}if(u!=0){for(int i=m;i>0;i--)f[u][i]=f[u][i-1]+s[u];} }int main(){cin>>n>>m;for(int i=1;i<=n;i++){int x;cin>>x>>s[i];son[x].push_back(i);}memset(f,-inf,sizeof f);dfs(0);printf("%d\n",f[0][m]); }?
轉載于:https://www.cnblogs.com/asdic/p/9697183.html
總結
以上是生活随笔為你收集整理的luogu 2014 选课 树上背包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: e.getMessage 为空NULL
- 下一篇: laravel 同数据表字段比较查询和状