1. #include<iostream>
  2. #include<cmath>
  3. #include<algorithm>
  4. #include<vector>
  5. #include<cstdio>
  6. #include<cstdlib>
  7. #include<cstring>
  8. #include<string>
  9.  
  10. using namespace std;
  11.  
  12. #define maxn 6005
  13. struct node{
  14. int to,net;
  15. }que[maxn<<];
  16. int head[maxn];
  17. int n;
  18. int dp[maxn][],father[maxn];//dp[i][0]0表示不去,dp[i][1]1表示去了
  19. bool visited[maxn];
  20. int tot=;
  21.  
  22. void addedge(int u,int v){
  23. que[tot].to=v;
  24. que[tot].net=head[u];
  25. head[u]=tot++;
  26.  
  27. que[tot].to=u;
  28. que[tot].net=head[v];
  29. head[v]=tot++;
  30.  
  31. }
  32.  
  33. void tree_dp(int node)
  34. {
  35. int i;
  36. visited[node] = ;
  37. for(i=head[node]; i!=-; i=que[i].net)
  38. {
  39. int v=que[i].to;
  40. if(!visited[v]&&father[v] == node)//i为下属
  41. {
  42. tree_dp(v);//递归调用孩子结点,从叶子结点开始dp
  43. //关键
  44. ) dp[node][] += dp[v][];//上司来,下属不来
  45. dp[node][] +=max(dp[v][],dp[v][]);//上司不来,下属来、不来
  46. }
  47. }
  48. }
  49.  
  50. int main()
  51. {
  52. int i;
  53. int f,c,root;
  54. while(scanf("%d",&n)!=EOF)
  55. {
  56. tot=;
  57. memset(head,-,sizeof(head));
  58. memset(dp,,sizeof(dp));
  59. memset(father,,sizeof(father));
  60. memset(visited,,sizeof(visited));
  61. for(i=; i<=n; i++)
  62. {
  63. scanf("%d",&dp[i][]);
  64. }
  65. root = ;//记录父结点
  66. bool beg = ;
  67. while (scanf("%d %d",&c,&f),c||f)
  68. {
  69. addedge(c,f);
  70. father[c] = f;
  71. if( root == c || beg )
  72. {
  73. root = f;
  74. }
  75. }
  76. while(father[root])//查找父结点
  77. root=father[root];
  78. tree_dp(root);
  79. int imax=max(dp[root][],dp[root][]);
  80. printf("%d\n",imax);
  81. }
  82. return ;
  83.  
  84. }

补上题代码 hdu1520的更多相关文章

  1. Twitter面试题蓄水池蓄水量算法(原创 JS版,以后可能会补上C#的)

    之前在群里有人讨论Twitter的面试题,蓄水池蓄水量计算,于是自己写了个JS版的(PS:主要后台代码还要编译,想想还是JS快,于是就使用了JS了.不过算法主要还是思路嘛,而且JS应该都没问题吧^_^ ...

  2. Notepad++强大的代码补全和代码提示功能的方法

    最近写项目,经常要打开一些文件去修改一些代码段.那么我的项目都是使用ied大型编辑器去写的,每次修改文件,哪怕是一个标点都要用一分钟时间去打开软件.当然,后来我也考虑到使用记事本,但总感觉不是很爽. ...

  3. GIT如何从本地上传代码到github

    转载请标明出处: http://blog.csdn.net/hanhailong726188/article/details/46738929 本文出自:[海龙的博客] 开篇之前说下题外话,之前写过一 ...

  4. 如何用git上传代码到github详细步骤

    注册账户 这个小菜鸟带着心跳写的第一篇博客! 还请大家多多提点! 想使用github,第一步肯定是要注册github账号,有了账号就是直接登录啦 可以直接打开http://github.com页面注册 ...

  5. JavaScript 空位补零实现代码

    实现一: 复制代码代码如下: /* 平淡无奇法 */ function pad(num, n) { var i = (num + "").length; while(i++ < ...

  6. 实习面试总结(只写了昨天腾讯的面试和拿到offer的一个小公司, 有空再把前面的补上吧)

    一个月来面了大大小小的公司有近10个,还是总结一下吧,希望对大家有点用处. 我想说的是,大学四年,如果不会继续读研深造,那么你需要做的不仅仅是疯狂的做项目,或者单独的学算法. 最好的方式就是都了解一点 ...

  7. 【iOS 使用github上传代码】详解

    [iOS 使用github上传代码]详解 一.github创建新工程 二.直接添加文件 三.通过https 和 SSH 操作两种方式上传工程 3.1https 和 SSH 的区别: 3.1.1.前者可 ...

  8. [SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码

    <Windows Azure Platform 系列文章目录> 前一章我们完成了服务器端的代码,并且已经发布到了Windows Azure云端. 本章我们将实现客户端的代码,客户端这里我们 ...

  9. 使用webstom或者idea上传代码到github或coding

    鉴于github网络速度太慢,建议用coding.先介绍github上传方式,因为webstom或idea集成了github,方法简单. git是一个版本控制器,他的作用是管理代码.比如你修改了代码, ...

随机推荐

  1. MySQL学习笔记——基本语法

    SQL——结构化查询语言(Structured Query Language) 1> SQL语言不区分大小写,建议关键字用大写,但是字符串常量区分大小写 2> SQL注释:/**/多行注释 ...

  2. LyX-220-Installer-3

    所见即所得 单独安装这个写作业可以了,要发论文用CTeX Ctrl + M 打开数学输入,里面可以输入 TeX 代码

  3. winform的扩展的带有截图功能picturebox

    using System; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using Sys ...

  4. 利用ant脚本 自动构建svn增量/全量 系统程序升级包

    首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...

  5. linux的bash 终端操作快捷键

    bash中的快捷键操作: 分为两大类, 一是移动, 另一个是删除 一. 移动 1. 按字符移动: ctrl+f, ctrl+b 3. 按行移动: ctrl+a, ctrl+e 二. 删除: 1. 按字 ...

  6. Typecho中的gravatar头像无法加载

    将var/Typecho/Common.php中的第939行中的http://www.gravatar.com/中的www.给去掉即可! //修改前 $url = $isSecure ? 'https ...

  7. 如何使用UltraCompare对比两个文件夹内容差异

    http://jingyan.baidu.com/article/cb5d6105e13599005c2fe0f8.html  

  8. dubbo框架----探索-大型系统架构设计(图解)

    对于高并发系统的架构要求: 1. 负载均衡 2.高并发 3.高可用 4.面向服务架构 (Dubbo框架使用) 5.分布式缓存 (redis分布式缓存) 6.分布式全文检索 (solr分分布式全文检索) ...

  9. Java五道输出易错题解析(避免小错误)

    收集了几个易错的或好玩的Java输出题,分享给大家,以后在编程学习中稍微注意下就OK了. 1. 看不见的空格? 下面的输出会正常吗? package basic; public class Integ ...

  10. 几个主流java连接池

    池(Pool)技术在一定程度上可以明显优化服务器应用程序的性能,提高程序执行效率和降低系统资源开销.这里所说的池是一种广义上的池,比如数据库连接池.线程池.内存池.对象池等.其中,对象池可以看成保存对 ...