1 条题解
-
1
#include<bits/stdc++.h> using namespace std; const int N=105; int n,m,k,s,t,f[N][N],a[N],sz[N]; vector<pair<int,int>> e[N]; void dfs(int u,int fa){ sz[u]=1; for (auto &i:e[u]){ int v=i.first; int w=i.second; if (v==fa) continue; dfs(v,u); for (int i=sz[u]-1;i>=0;--i) for (int j=0;j<sz[v];++j) f[u][i+j+1]=max(f[u][i+j+1],f[u][i]+f[v][j]+w); sz[u]+=sz[v]; } } int main(){ cin>>n>>m; for (int i=1;i<n;++i){ cin>>s>>t>>k; e[s].push_back({t,k}); e[t].push_back({s,k}); } dfs(1,0); cout<<f[1][m]; }
- 1
信息
- ID
- 369
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 1
- 标签
- 递交数
- 29
- 已通过
- 26
- 上传者