FarmCraft[POI2014]
题目描述
输入
输出
样例输入
6
1 8 9 6 3 2
1 3
2 3
3 4
4 5
4 6
样例输出
11
提示
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int sj=;
int n,c[sj],h[sj],e,a1,a2,f[sj],jg;
int p[sj],fa[sj];
struct B
{
int ne,v;
}b[sj*];
void add(int x,int y)
{
b[e].v=y;
b[e].ne=h[x];
h[x]=e++;
}
int bj(int x,int y)
{
return x>y?x:y;
}
struct D
{
int num,vl;
}d[sj];
int comp(const D&a,const D&b)
{
return a.vl>b.vl;
}
void dfs(int x,int ge)
{
int temp=ge,ww=;
for(int i=h[x];i!=-;i=b[i].ne)
if(b[i].v!=fa[x])
{
fa[b[i].v]=x;
dfs(b[i].v,temp);
f[x]+=f[b[i].v]+;
d[temp].vl=p[b[i].v];
d[temp].num=b[i].v;
temp++;
}
p[x]=c[x]-f[x];
if(p[x]<) p[x]=;
sort(d+ge,d+temp,comp);
for(int i=ge;i<temp;i++)
{
ww+=f[d[i].num];
p[x]=bj(p[x],p[d[i].num]-(f[x]-ww));
ww+=;
}
}
void init()
{
scanf("%d",&n);
memset(h,-,sizeof(h));
for(int i=;i<=n;i++) scanf("%d",&c[i]);
for(int i=;i<n;i++)
{
scanf("%d%d",&a1,&a2);
add(a1,a2);
add(a2,a1);
}
dfs(,);
}
int main()
{
init();
jg=bj(c[],p[])+*n-;
printf("%d",jg);
return ;
}
farmcraft
你应该超越自己,走得更远,登得更高,直至群星已在你脚下
FarmCraft[POI2014]的更多相关文章
- [补档][Poi2014]FarmCraft
[Poi2014]FarmCraft 题目 mhy住在一棵有n个点的树的1号结点上,每个结点上都有一个妹子. mhy从自己家出发,去给每一个妹子都送一台电脑,每个妹子拿到电脑后就会开始安装zhx牌杀毒 ...
- [BZOJ 3829][POI2014] FarmCraft
先贴一波题面... 3829: [Poi2014]FarmCraft Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 421 Solved: 197[ ...
- 【BZOJ3829】[Poi2014]FarmCraft 树形DP(贪心)
[BZOJ3829][Poi2014]FarmCraft Description In a village called Byteville, there are houses connected ...
- BZOJ3829[Poi2014]FarmCraft——树形DP+贪心
题目描述 In a village called Byteville, there are houses connected with N-1 roads. For each pair of ho ...
- 【bzoj3829】[Poi2014]FarmCraft 贪心
原文地址:http://www.cnblogs.com/GXZlegend/p/6826667.html 题目描述 In a village called Byteville, there are ...
- [POI2014][树形DP]FarmCraft
题目 In a village called Byteville, there are houses connected with N-1 roads. For each pair of houses ...
- BZOJ3829 : [Poi2014]FarmCraft
d[x]表示走完x的子树并回到x所需的时间 f[x]表示从走到x开始计时,x子树中最晚的点安装完的最早时间 d[x]=sum(d[i]+2),i是x的孩子 f[x]的计算比较复杂: 考虑将x的各棵子树 ...
- [Poi2014]FarmCraft 树状dp
对于每个点,处理出走完其子树所需要的时间和其子树完全下载完软件的时间 易证,对于每个点的所有子节点,一定优先选择差值大的来给后面的时间 树规+贪心. #include<cstdio> #i ...
- BZOJ3829 [Poi2014]FarmCraft 【树形dp】
题目链接 BZOJ3829 题解 设\(f[i]\)为从\(i\)父亲进入\(i\)之前开始计时,\(i\)的子树中最晚装好的时间 同时记\(siz[i]\)为节点\(i\)子树大小的两倍,即为从父亲 ...
随机推荐
- 通过bin-log对mysql进行数据恢复
mysqlbinlog --database=数据库名 --start-date="2017-06-01 5:00:00" --stop-date="2017-06-1 ...
- html与xhtml有什么区别?
HTML与XHTML之间的差别,主要分为功能上的差别和书写习惯的差别两方面. 关于功能上的差别,主要是XHTML可兼容各大浏览器.手机以及PDA,并且浏览器也能快速正确地编译网页. 由于XHTML的语 ...
- 使用mongodb作为Quartz.Net下的JobStore实现底层的持久化机制
我们都知道默认的Quartz底层采用的是RAMJobStore,所有的Job,Trigger,Calendar都是用Dictionary,SortSet等等这样的数据结构进行储存,相对来说性能肯 定快 ...
- nginx+ftp搭建图片服务器(Windows Server服务器环境下)
几种图片服务器的对比 1.直接使用ftp服务器,访问图片路径为 ftp://账户:密码@192.168.0.106/31275-105.jpg 不采用这种方式,不安全容易暴露ftp账户信息 2.直接使 ...
- grub2详解(翻译和整理官方手册)
翻译了grub2官方手册的绝大部分内容,然后自己整理了一下.因为内容有点杂,所以章节安排上可能不是太合理,敬请谅解. 本文目录: 1.1 基础内容 1.2 安装grub2 1.3 grub2配置文件 ...
- a链接返回上一页
<a href="javascript:void(0);" onclick="javascript:history.go(-1);" style='mar ...
- I/O多路复用之epoll实战
概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程 通俗理解(摘自网上一大神) 这些名词比较绕口,理解涵义就好.一个epoll场景:一个酒吧服务员(一个线程),前 ...
- 如何将md文件转换成带目录的html文件
配置环境node 去官网下一个node安装包,下一步下一步: 由于现在的node都自带npm,直接 npm install i5ting_toc 这样安装好了i5ting_toc这个包, 进入你实现准 ...
- 免费MD5解密网站,轻松破解md5密码,mysql5/mysql323,ntlm,salt密码
md5解密网站:http://cmd5.la 网站语言:php 免费指数:★★★ (8位内小写数字字母免费,11位内数字免费) 解密范围:★★★★☆ (覆盖了1-12位很多常用密码和特殊 ...
- App Extensions篇之Sticker Pack Extension
转载请标明原文链接:http://www.cnblogs.com/zhanggui/p/7151795.html 前言 上一篇文章对App Extension做了简单介绍以及对Share Extens ...