码迷,mamicode.com
首页 > 其他好文 > 详细

bzoj4033-树形dp

时间:2019-08-15 21:28:43      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:universal   exit   man   ast   color   更新   names   space   rsa   

技术图片
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<string>
 5 #include<cstring>
 6 #include<algorithm>
 7 #include<iomanip>
 8 using namespace std;
 9 //f[i][t]表示以i为根,子树有t个点染黑的收益
10 //考虑对每一条边计算贡献:有几个点的路径上也包含这条边。
11 //f[x][j+t]=max(f[x][j+t],f[x][j]+f[y][t]+(long long)edge[i].dis*(t*(k-t)+(size[y]-t)*(n-k-(size[y]-t))));
12 //最后更新size[x] 
13 namespace Moxing{
14     const int N=2005;
15     int n,k,last[N],cnt,size[N],son[N<<1];
16     long long f[N][N];
17     struct node{
18         int to,dis,nxt;
19     }edge[N<<1];
20     void add(int from,int to,int dis){
21         edge[++cnt].to=to,edge[cnt].dis=dis,edge[cnt].nxt=last[from],last[from]=cnt;
22     }
23     void dfs(int x,int fa){
24     //    f[x][0]=f[x][1]=0;
25         size[x]=1;
26         for(int i=last[x];i;i=edge[i].nxt){
27             int y=edge[i].to;
28             if(y==fa) continue ;
29             dfs(y,x);
30             for(int j=min(k,size[x]);j>=0;j--){
31                 for(int t=min(k-j,size[y]);t>=0&&(j+t)<=k;t--){// j+t<=k -> t<=k-j
32                     f[x][j+t]=max(f[x][j+t],f[x][j]+f[y][t]+(long long)edge[i].dis*(t*(k-t)+(size[y]-t)*(n-k-(size[y]-t))));
33                 }
34             }
35             size[x]+=size[y];
36         }
37     } 
38     struct main{a
39         main(){
40             scanf("%d%d",&n,&k);
41             for(int i=1;i<=n-1;i++){
42                 int from,to,dis;
43                 scanf("%d%d%d",&from,&to,&dis);
44                 add(from,to,dis),add(to,from,dis);
45             }
46             dfs(1,1);
47             printf("%lld\n",f[1][k]);
48             exit(0);
49         }
50     }UniversalLove;
51 } 
52 int main(){
53     Moxing::main();
54 }
View Code

 

bzoj4033-树形dp

标签:universal   exit   man   ast   color   更新   names   space   rsa   

原文地址:https://www.cnblogs.com/Moxingtianxia/p/11360384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!