补上题代码 hdu1520
- #include<iostream>
- #include<cmath>
- #include<algorithm>
- #include<vector>
- #include<cstdio>
- #include<cstdlib>
- #include<cstring>
- #include<string>
- using namespace std;
- #define maxn 6005
- struct node{
- int to,net;
- }que[maxn<<];
- int head[maxn];
- int n;
- int dp[maxn][],father[maxn];//dp[i][0]0表示不去,dp[i][1]1表示去了
- bool visited[maxn];
- int tot=;
- void addedge(int u,int v){
- que[tot].to=v;
- que[tot].net=head[u];
- head[u]=tot++;
- que[tot].to=u;
- que[tot].net=head[v];
- head[v]=tot++;
- }
- void tree_dp(int node)
- {
- int i;
- visited[node] = ;
- for(i=head[node]; i!=-; i=que[i].net)
- {
- int v=que[i].to;
- if(!visited[v]&&father[v] == node)//i为下属
- {
- tree_dp(v);//递归调用孩子结点,从叶子结点开始dp
- //关键
- ) dp[node][] += dp[v][];//上司来,下属不来
- dp[node][] +=max(dp[v][],dp[v][]);//上司不来,下属来、不来
- }
- }
- }
- int main()
- {
- int i;
- int f,c,root;
- while(scanf("%d",&n)!=EOF)
- {
- tot=;
- memset(head,-,sizeof(head));
- memset(dp,,sizeof(dp));
- memset(father,,sizeof(father));
- memset(visited,,sizeof(visited));
- for(i=; i<=n; i++)
- {
- scanf("%d",&dp[i][]);
- }
- root = ;//记录父结点
- bool beg = ;
- while (scanf("%d %d",&c,&f),c||f)
- {
- addedge(c,f);
- father[c] = f;
- if( root == c || beg )
- {
- root = f;
- }
- }
- while(father[root])//查找父结点
- root=father[root];
- tree_dp(root);
- int imax=max(dp[root][],dp[root][]);
- printf("%d\n",imax);
- }
- return ;
- }
补上题代码 hdu1520的更多相关文章
- Twitter面试题蓄水池蓄水量算法(原创 JS版,以后可能会补上C#的)
之前在群里有人讨论Twitter的面试题,蓄水池蓄水量计算,于是自己写了个JS版的(PS:主要后台代码还要编译,想想还是JS快,于是就使用了JS了.不过算法主要还是思路嘛,而且JS应该都没问题吧^_^ ...
- Notepad++强大的代码补全和代码提示功能的方法
最近写项目,经常要打开一些文件去修改一些代码段.那么我的项目都是使用ied大型编辑器去写的,每次修改文件,哪怕是一个标点都要用一分钟时间去打开软件.当然,后来我也考虑到使用记事本,但总感觉不是很爽. ...
- GIT如何从本地上传代码到github
转载请标明出处: http://blog.csdn.net/hanhailong726188/article/details/46738929 本文出自:[海龙的博客] 开篇之前说下题外话,之前写过一 ...
- 如何用git上传代码到github详细步骤
注册账户 这个小菜鸟带着心跳写的第一篇博客! 还请大家多多提点! 想使用github,第一步肯定是要注册github账号,有了账号就是直接登录啦 可以直接打开http://github.com页面注册 ...
- JavaScript 空位补零实现代码
实现一: 复制代码代码如下: /* 平淡无奇法 */ function pad(num, n) { var i = (num + "").length; while(i++ < ...
- 实习面试总结(只写了昨天腾讯的面试和拿到offer的一个小公司, 有空再把前面的补上吧)
一个月来面了大大小小的公司有近10个,还是总结一下吧,希望对大家有点用处. 我想说的是,大学四年,如果不会继续读研深造,那么你需要做的不仅仅是疯狂的做项目,或者单独的学算法. 最好的方式就是都了解一点 ...
- 【iOS 使用github上传代码】详解
[iOS 使用github上传代码]详解 一.github创建新工程 二.直接添加文件 三.通过https 和 SSH 操作两种方式上传工程 3.1https 和 SSH 的区别: 3.1.1.前者可 ...
- [SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码
<Windows Azure Platform 系列文章目录> 前一章我们完成了服务器端的代码,并且已经发布到了Windows Azure云端. 本章我们将实现客户端的代码,客户端这里我们 ...
- 使用webstom或者idea上传代码到github或coding
鉴于github网络速度太慢,建议用coding.先介绍github上传方式,因为webstom或idea集成了github,方法简单. git是一个版本控制器,他的作用是管理代码.比如你修改了代码, ...
随机推荐
- MySQL学习笔记——基本语法
SQL——结构化查询语言(Structured Query Language) 1> SQL语言不区分大小写,建议关键字用大写,但是字符串常量区分大小写 2> SQL注释:/**/多行注释 ...
- LyX-220-Installer-3
所见即所得 单独安装这个写作业可以了,要发论文用CTeX Ctrl + M 打开数学输入,里面可以输入 TeX 代码
- winform的扩展的带有截图功能picturebox
using System; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using Sys ...
- 利用ant脚本 自动构建svn增量/全量 系统程序升级包
首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...
- linux的bash 终端操作快捷键
bash中的快捷键操作: 分为两大类, 一是移动, 另一个是删除 一. 移动 1. 按字符移动: ctrl+f, ctrl+b 3. 按行移动: ctrl+a, ctrl+e 二. 删除: 1. 按字 ...
- Typecho中的gravatar头像无法加载
将var/Typecho/Common.php中的第939行中的http://www.gravatar.com/中的www.给去掉即可! //修改前 $url = $isSecure ? 'https ...
- 如何使用UltraCompare对比两个文件夹内容差异
http://jingyan.baidu.com/article/cb5d6105e13599005c2fe0f8.html
- dubbo框架----探索-大型系统架构设计(图解)
对于高并发系统的架构要求: 1. 负载均衡 2.高并发 3.高可用 4.面向服务架构 (Dubbo框架使用) 5.分布式缓存 (redis分布式缓存) 6.分布式全文检索 (solr分分布式全文检索) ...
- Java五道输出易错题解析(避免小错误)
收集了几个易错的或好玩的Java输出题,分享给大家,以后在编程学习中稍微注意下就OK了. 1. 看不见的空格? 下面的输出会正常吗? package basic; public class Integ ...
- 几个主流java连接池
池(Pool)技术在一定程度上可以明显优化服务器应用程序的性能,提高程序执行效率和降低系统资源开销.这里所说的池是一种广义上的池,比如数据库连接池.线程池.内存池.对象池等.其中,对象池可以看成保存对 ...