【BZOJ4033】【HAOI2015】树上染色 树形DP
来源:互联网 发布:淘宝店货品怎么上架 编辑:程序博客网 时间:2024/05/05 01:57
题目描述
给你一棵
题解
我们考虑树形DP。
设
若一条边的一端有
于是我们就可以从
表面上看是
转移可以看成两边各选一个点,这个点
代码
#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<ctime>#include<utility>#include<cmath>#include<functional>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair<int,int> pii;typedef pair<ll,ll> pll;void sort(int &a,int &b){ if(a>b) swap(a,b);}void open(const char *s){#ifndef ONLINE_JUDGE char str[100]; sprintf(str,"%s.in",s); freopen(str,"r",stdin); sprintf(str,"%s.out",s); freopen(str,"w",stdout);#endif}int rd(){ int s=0,c; while((c=getchar())<'0'||c>'9'); do { s=s*10+c-'0'; } while((c=getchar())>='0'&&c<='9'); return s;}ll upmin(ll &a,ll b){ if(b<a) { a=b; return 1; } return 0;}int upmax(ll &a,ll b){ if(b>a) { a=b; return 1; } return 0;}struct graph{ int v[5010]; int w[5010]; int t[5010]; int h[2010]; int n; graph() { memset(h,0,sizeof h); n=0; } void add(int x,int y,int z) { n++; v[n]=y; w[n]=z; t[n]=h[x]; h[x]=n; }};graph g;ll f[2010][2010];ll h[2010];int s[2010];int n,k;void dfs(int x,int fa){ s[x]=1; f[x][0]=f[x][1]=0; int i,v,j,l; for(i=g.h[x];i;i=g.t[i]) if(g.v[i]!=fa) { v=g.v[i]; dfs(v,x); memset(h,0xc0,sizeof h); for(j=0;j<=s[x]&&j<=k;j++) for(l=0;l<=s[v]&&j+l<=k;l++) if(n-k-s[v]+l>=0) upmax(h[j+l],f[x][j]+f[v][l]+ll(g.w[i])*(ll(k-l)*l+ll(n-k-s[v]+l)*(s[v]-l))); s[x]+=s[v]; for(j=0;j<=s[x]&&j<=k;j++) f[x][j]=h[j]; }}int main(){ scanf("%d%d",&n,&k); int i,x,y,z; for(i=1;i<n;i++) { scanf("%d%d%d",&x,&y,&z); g.add(x,y,z); g.add(y,x,z); } memset(f,0xc0,sizeof f); dfs(1,0); printf("%lld\n",f[1][k]); return 0;}
阅读全文
0 0
- [bzoj4033][HAOI2015]树上染色(树形dp)
- 【BZOJ4033】【HAOI2015】树上染色 树形DP
- bzoj4033 [HAOI2015]树上染色(树形)
- 【bzoj4033】树上染色 树形dp
- BZOJ4033 [HAOI2015]树上染色
- bzoj4033[HAOI2015] 树上染色
- 【bzoj4033】[HAOI2015]树上染色
- 【HAOI2015】【树形dp】树上染色
- BZOJ4033[HAOI2015] 树上染色 解题报告【树上DP】
- 【HAOI2015】【BZOJ4033】T1树上染色
- bzoj 4033: [HAOI2015]树上染色 树形dp
- [树形DP] BZOJ 4033 [HAOI2015]树上染色
- BZOJ 4033: [HAOI2015]树上染色 树形dp
- [BZOJ]4033: [HAOI2015]树上染色 树形DP
- [BZOJ4033] [HAOI2015] T1 - 树形DP
- bzoj4033 HAOI2015 T1 树形DP
- bzoj 4033: [HAOI2015]树上染色(树形DP)
- [树形DP]BZOJ 4033—— [HAOI2015]树上染色
- STM32F10x芯片类型 STM32F10X_LD STM32F10X_MD STM32F10X_HD STM32F10X_XL STM32F10X_CL
- 滚动条的应用
- Linux 安装svn
- C#Stack堆栈学习
- 工具使用--第3节 HEXO美化之添加虾米音乐播放器
- 【BZOJ4033】【HAOI2015】树上染色 树形DP
- 博弈论的总结
- Centos之Crontab定时任务-yellowcong
- 【ML学习笔记】2:机器学习中的数学基础2(琴生不等式,概率公式,统计量)
- 程序员150行javascript代码制作桌面级右击鼠标便签效果
- fork与vfork函数
- 一个数倒序排列
- 处理输入成绩异常
- Hadoop 2X伪分布式环境搭建