FZU 2157 树形DP
来源:互联网 发布:淘宝运营报价 编辑:程序博客网 时间:2024/06/05 20:08
最开始一直不理解题是什么意思 ╯▽╰
题意:给出n个点,每个点都有两种花费,一个是0种花费,一个是1种花费,每两个点相连,边也有花费,是随着点所取话费的种类不同,边的花费也不同,边有四种花费,00,01,10,11 问建成整颗树所需要的最少花费。
思路:dp[i][0]代表当前结点取0种花费时建好以i结点为根节点的最少花费,dp[i][1]代表当前结点取1种花费时建好以i结点为根节点的最少花费,那么有动态转移方程就出来了.......
Sample Input
1
4
3 1 1 3
4 0 0 4
1 2 0 1 1 0
2 3 0 1 1 0
2 4 0 1 1 0
Sample Output
8
#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>#include <vector>#include <algorithm>using namespace std;struct node{ int y; int a,b,c,d;};vector<node>q[200005];int dp[200005][2];int num1[200005];int num2[200005];void dfs(int u){ if(q[u].empty()) { dp[u][0] = num1[u]; dp[u][1] = num2[u]; return; } dp[u][0] = num1[u]; dp[u][1] = num2[u]; int len = q[u].size(); for(int i = 0; i < len; i++) { node tmp = q[u][i]; dfs(tmp.y); dp[u][0] += min(dp[tmp.y][0]+tmp.a,dp[tmp.y][1]+tmp.b); dp[u][1] += min(dp[tmp.y][0]+tmp.c,dp[tmp.y][1]+tmp.d); }}int main(){ int T; scanf("%d",&T); while(T--) { int n; scanf("%d",&n); for(int i =1; i <= n; i++) scanf("%d",&num1[i]); for(int i = 1; i <= n; i++) scanf("%d",&num2[i]); memset(dp,0,sizeof(dp)); for(int i = 0;i <= n;i++) q[i].clear(); int x,y,a,b,c,d; for(int i = 1; i < n; i++) { scanf("%d%d%d%d%d%d",&x,&y,&a,&b,&c,&d); node temp; temp.y = y; temp.a = a; temp.b = b; temp.c = c; temp.d = d; q[x].push_back(temp); } dfs(1); printf("%d\n",min(dp[1][0],dp[1][1])); } return 0;}
0 0
- FZU 2157 树形DP
- FZU 2195 检查站点 (树形dp)
- FZU 2195 检查站点 (树形dp)
- Fzu 2256 迷宫【基础树形Dp】
- FZU 2256 树形dp(水)
- FZU 2169 shadow (用了一次邻接表存边,树形DP)
- [FZU 2142 Center of a Tree] 树形DP
- Fzu 2157 ProgramCaicai's Trees【树型dp】
- 树形dp
- 树形DP
- 树形dp
- 树形DP
- 树形dp
- 树形DP
- 树形DP
- 树形DP
- 树形DP
- 树形dp
- 【HDU】5314 Happy King【动态树(点分治)】
- 【试水CAS-4.0.3】第08节_CAS客户端配置单点登出
- Android开发学习笔记十五 webservice工具类
- AfxMessageBox和MessageBox区别
- 当前页面需要显示上传的图片。图片并不需要上传到服务器存入数据库中
- FZU 2157 树形DP
- Tortoisesvn介绍
- nyoj117 求逆序数【线段树】
- 揭秘家用路由器0day漏洞挖掘技术——互动出版网
- Qt Creator 乱码问题
- 【bzoj3990】 SDOI2015排序 dfs搜索+剪枝
- django1.8使用mysql数据库
- http断点续传原理:http头Range 、 Content-Range
- 手把手教你把Vim改装成一个IDE编程环境(图文)