hihocoder编程练习赛52-3 部门聚会
思路:
树形dp。
实现:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = ;
int n, a[MAXN], in[MAXN];
vector<int> G[MAXN];
double dp[MAXN][];
bool vis[MAXN];
void dfs(int now)
{
vis[now] = true;
for (int i = ; i < G[now].size(); i++)
{
int tmp = G[now][i];
if (!vis[tmp]) dfs(tmp);
dp[now][] += max(dp[tmp][], dp[tmp][] + a[tmp]);
dp[now][] += max(dp[tmp][], dp[tmp][] + (double)a[tmp] / 2.0);
}
}
int main()
{
cin >> n;
int u, v;
for (int i = ; i <= n; i++) cin >> a[i];
for (int i = ; i < n - ; i++) { cin >> u >> v; in[v]++; G[u].push_back(v); }
int i = ;
for (; i <= n; i++) if (!in[i]) break;
dfs(i);
printf("%.1f\n", max(dp[i][], dp[i][] + a[i]));
return ;
}
hihocoder编程练习赛52-3 部门聚会的更多相关文章
- hihocoder [Offer收割]编程练习赛52 D 部门聚会
看了题目的讨论才会做的 首先一点,算每条边(u, v)对于n*(n+1)/2种[l, r]组合的贡献 正着算不如反着算 哪些[l, r]的组合没有包含这条边(u, v)呢 这个很好算 只需要统计u这半 ...
- hihoCoder编程练习赛52
题目1 : 字符串排序 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 一般我们在对字符串排序时,都会按照字典序排序.当字符串只包含小写字母时,相当于按字母表" ...
- hihocoder 编程练习赛23
第一题:H国的身份证号码I 题意:一个N位的正整数(首位不能是0).每位数字都小于等于K,并且任意相邻两位数字的乘积也小于等于K.按从小到大的顺序输出所有合法的N位号码,每个号码占一行. 思路:dfs ...
- hihocoder编程练习赛75
题目1 : 工作城市分配 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 H公司在北京和上海两个城市各有一间办公室.该公司最近新招募了2N名员工,小Hi负责把这2N名员工 ...
- hihoCoder编程练习赛72
题目1 : 玩具设计师 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho作为Z国知名玩具品牌AKIRE的首席设计师,对玩具零件的挑剔程度已经到了叹为观止的地步.所有 ...
- hihoCoder编程练习赛70
题目1 : 数位翻转 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个数 n,你可以进行若干次操作,每次操作可以翻转 n 的二进制表示下的某一位,即将 0 变成 ...
- hihoCoder编程练习赛69
题目1 : 偶数长度回文子串 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个小写字母字符串,请判断它是否有长度为偶数的非空连续回文子串 输入 输入包含多组数据. ...
- hihoCoder编程练习赛67
题目1 : 序列 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个正整数 n, P,求满足以下两个条件的长度为 n 的序列 ai 个数: 1. 1 ≤ ai ≤ ...
- hihoCoder编程练习赛49
题目1 : 相似颜色 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在CSS中我们可以用井号(#)加6位十六进制数表示一种颜色,例如#000000是黑色,#ff0000 ...
随机推荐
- Hibernate学习(1)简单介绍
1.什么是Hibernate? 首先,Hibernate是数据持久层的一个轻量级框架.数据持久层的框架有非常多比方:iBATIS,myBatis,Nhibernate,Siena等 ...
- 鸡肋的JdbcRDD
今天准备将mysql的数据倒腾到RDD.非常早曾经就知道有一个JdbcRDD.就想着使用一下,结果发现却是鸡肋一个. 首先,看看JdbcRDD的定义: * An RDD tha ...
- MySql InnoDb还原工具
通过任意文件下载找到了mysql的备份,表类型是独享式innodb,由一个frm文件和一个ibd文件组成. 本以为直接复制到本地的mysql数据目录中即可恢复数据,但在查询时却发现并不如所愿: mys ...
- make运行阶段划分
1 make执行分为两个阶段 第一个阶段:读makefile并且建树阶段 第二个阶段:构建目标阶段 2 扩展的立即和推迟 在第一个阶段的扩展是立即,在第二个阶段或者在需要的时候再扩展是推迟,这里的需要 ...
- Responsive Nav
引入文件 <!-- 引入这些文件至 <head> 中 --> <link rel="stylesheet" href="responsive ...
- shell脚本常用(记)
1.变量检查,判空 a.直接变量判断 if [ ! $1 ];then ..empty..fi b.变量通过" "引号引起来 if [ ! -n "$1" ...
- easyUI下拉列表点击事件的使用
可以通过input 和select来创建下拉列表 其中select的创建如下: 通过json来创建js数组 [{ "id":1, "text":"te ...
- python dns server开源列表 TODO
基于dns lib的,https://github.com/andreif/dnslib 有:https://www.cnblogs.com/anpengapple/p/5664500.html ht ...
- 并不对劲的字符串专题(三):Trie树
据说这些并不对劲的内容是<信息学奥赛一本通提高篇>的配套练习. 并不会讲Trie树. 1.poj1056-> 模板题. 2.bzoj1212-> 设dp[i]表示T长度为i的前 ...
- Gerrit+apache+H2数据库简单安装配置及建库流程
Gerrit 是一个基于 Web 的代码评审和项目管理的工具,面向基于 Git 版本控制系统的项目.因此需要Apache.Mysql.GIT等相关软件的支持 系统配置: 新装的UBANTU LINUX ...