hdu1055
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<map>
#include<stack>
#include<set>
#include<queue>
#include<string>
#include<vector>
#define eps 1e-6
#define LL long long
#define LD long double
#define pi acos(-1.0)
#define inf 1<<30
using namespace std;
struct Node{
int idx,next;
}a[1005];
int cnt,n,root,c[1005],num[1005],pre[1005],start[1005];
bool visit[1005];
int addedge(int u,int v){
a[cnt].idx=v;
a[cnt].next=start[u];
return cnt++;
}
int find_root(){
double mmax=0;
int k;
for(int i=1;i<=n;i++)
if(!visit[i]&&(double)c[i]/num[i]>mmax&&i!=root){
mmax=(double)c[i]/num[i];
k=i;
}
return k;
}
void Union(int k,int p){
num[p]+=num[k];
c[p]+=c[k];
for(int i=start[k];i;i=a[i].next)
pre[a[i].idx]=p;
}
int slove(){
int ans=0;
for(int i=1;i<n;i++){
int k=find_root();
visit[k]=true;
int p=pre[k];
while(visit[p]) p=pre[p];
ans+=num[p]*c[k];
Union(k,p);
}
return ans+c[root];
}
int main(){
while(scanf("%d%d",&n,&root)!=EOF&&n+root){
memset(start,0,sizeof(start));
memset(visit,false,sizeof(visit));
for(int i=1;i<=n;i++){
scanf("%d",&c[i]);
num[i]=1;
}
cnt=1;
for(int i=1;i<n;i++){
int u,v;
scanf("%d%d",&u,&v);
start[u]=addedge(u,v);
pre[v]=u;
}
printf("%d\n",slove());
}
return 0;
}
hdu1055的更多相关文章
- Color a Tree[HDU1055]
Color a Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- hdu-1055(贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1055 题意:给一棵树涂色,这棵树的每个节点都有自己的价值Ci,涂色的原则是只由这个节点的父节点涂色之后 ...
随机推荐
- log4net性能小探
初步测试了Log4性能.Appender架构如下. 一般客户端,使用FileAppender,把Log记录在本地磁盘. <lockingModel type="log4net.Appe ...
- JavaWeb -- 会话, Cookie 和 Session
1. 会话 •Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去.这样,web资源处理的就是 ...
- CDH- 集群时间同步ntp问题解决
在CDH集群中发现有两台机器获取不到心跳(),导致监控不了机器状态,出现告警 可以使用ntpstat检查与ntp 服务器的时间偏差状态 使用 ntpstat 发现没有同步到ntp时间服务器,运行 nt ...
- CSS控制表格嵌套
网页设计应用中,当我们不能完全放弃表格的使用时,为了达到预期的效果,不免要用到表格嵌套(特别是多层嵌套)方式来进行布局.可能很多同仁都遇到过这样的问题,为了达到显示效果要为每一个(每一层)的表格写不同 ...
- mysql delete数据时报Error Code 1175
我们在学校mysql的时候,在更新或者删除数据的时候,会遇到以下错误: Error Code: . You are using safe update mode and you tried to up ...
- django 链接地址匹配流程
前提: 代码结构 步骤一: 下面为某个网页的链接地址 <body> {% if latest_article_list %} <ul> {% for article in la ...
- python3 字符串属性(三)
maketrans 和 translate的用法(配合使用) 下面是python的英文用法解释 maketrans(x, y=None, z=None, /) Return a translation ...
- apache 简单笔记
1.端口监听 可以多个 Listen 80Listen 8080 2.多网站 Listen 80Listen 8080 # Virtual hostsInclude conf/extra/httpd- ...
- (转)JSP九大内置对象
原文出处:http://www.importnew.com/19128.html 虽然现在基本上使用SpringMVC+AJAX进行开发了Java Web了,但是还是很有必要了解一下JSP的九大内置对 ...
- ReactJS结合ES6入门Template
一.前言 二.介绍 ReactJS ECMAScript 6 三.入门DEMO "Hello,XXX“ 输出 ES5写法 <div id="example"> ...