zoukankan      html  css  js  c++  java
  • 洛谷P2633 王后*

    题目描述

    byteland的王后深受百姓爱戴。为了表达他们的爱,国民们打算占领一个新的国家,并以王后的名字命名。这个国家有n座城市。城市之间有双向道路连接,且每两个城市之间有且仅有一条道路。每座城市对其拥有者来说都有一定的收益。尽管国民们非常爱戴他们的王后,他们并不一定会征服所有的城市献给她。他们只想占领一部分城市(至少有一座),这些城市必须满足两个条件:所有被占领的城市相互间必须是连通的,且城市收益之和最大。你的任务就是算出最大收益是多少。

    输入输出格式

    输入格式:

    第一行是城市的数量n(1<=n<=16000)。第二行包含n个整数,依次表示每座城市的收益,每个数是-1000到1000之间的整数。下面的n-1行描述了道路:每行包含2个整数a和b,用一个空格隔开,表示这两个城市之间有一条道路。

    输出格式:

    仅有一个数,表示最大收益。

    输入输出样例

    输入样例#1:
    5
    -1 1 3 1 -1
    4 1
    1 3
    1 2
    4 5
    输出样例#1:
    4

    水树规。

    没有点数限制,所以直接枚举每个子树选或不选。

     1 /*by SilverN*/
     2 #include<algorithm>
     3 #include<iostream>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 #include<vector>
     8 using namespace std;
     9 const int mxn=16010;
    10 int read(){
    11     int x=0,f=1;char ch=getchar();
    12     while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    13     while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
    14     return x*f;
    15 }
    16 int n;
    17 int w[mxn];
    18 struct edge{
    19     int v,nxt;
    20 }e[mxn<<1];
    21 int hd[mxn],mct=0;
    22 void add_edge(int u,int v){
    23     e[++mct].v=v;e[mct].nxt=hd[u];hd[u]=mct;
    24     return;
    25 }
    26 int f[mxn];
    27 int ans=0;
    28 void DP(int u,int fa){
    29     for(int i=hd[u];i;i=e[i].nxt){
    30         int v=e[i].v;
    31         if(v==fa)continue;
    32         DP(v,u);
    33         f[u]=max(f[u],f[u]+f[v]);
    34     }
    35     ans=max(ans,f[u]);
    36     return;
    37 }
    38 int main(){
    39     n=read();
    40     int i,j,u,v;
    41     for(i=1;i<=n;i++)w[i]=read(),f[i]=w[i];
    42     for(i=1;i<n;i++){
    43         u=read();v=read();
    44         add_edge(u,v);
    45         add_edge(v,u);
    46     }
    47     DP(1,0);
    48     printf("%d
    ",ans);
    49     return 0;
    50 }
  • 相关阅读:
    cocos2dx的发展的例子2048(加入动画版)
    Hibernate操作Clob数据类型
    json级联城市
    Ubuntu Linux 永山(mount)分
    C++出现计算机术语5
    Cocos2d-x 3.0 红孩儿私人义务教育
    大页(huge pages) 三大系列 ---计算大页配置参数
    EJB_消息驱动发展bean
    HDU5086Revenge of Segment Tree(数论)
    第五章_JSTL
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/6045961.html
Copyright © 2011-2022 走看看