最开始一直不理解题是什么意思 ╯▽╰

题意:给出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;
}

  

最新文章

  1. Charles常用的十大功能
  2. 【iPhone手机老提示升级怎么办】
  3. win7默认网关不可用怎么解决
  4. JavaScript 与函数式编程
  5. _jobdu_1384:二维数组中的查找
  6. bzoj 1798 [Ahoi2009]Seq 维护序列seq
  7. LoadRunner 11 安装及破解(转)
  8. setTimeout浅析
  9. Dynamics CRM不发布JS调试
  10. Bundle versions string, short与Bundle version
  11. Linux_破解密码-营救模式
  12. PLSQL设置细节
  13. 【问题解决方案】本地代码文件上传到GitHub里中文乱码问题
  14. 可以设置超时版的的fetch
  15. java中避免乱码
  16. 植物大战僵尸作弊器源代码(MFC版)
  17. 解决 Ubuntu 14.04 图形界面无法正常显示 问题
  18. iOS开发中常用的数学函数
  19. Java从零开始学三(public class和class)
  20. hadoop程序MapReduce之SingletonTableJoin

热门文章

  1. APP的案例分析-美团外卖
  2. Node入门教程(5)第四章:global 全局变量
  3. requestAnimationFrame Web中写动画的另一种选择
  4. python构造一个freebuf新闻发送脚本
  5. MySQL ID排序乱了的解决办法
  6. Python-面向对象(二)-Day7
  7. 用javascript做别踩白块游戏1
  8. MySQL中使用sql语句获得表结构
  9. kubernetes进阶(02)kubernetes的node
  10. Django中ORM介绍和字段及其参数