$Luogu$ $P1122$ 鏈€澶у瓙鏍戝拰

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了$Luogu$ $P1122$ 鏈€澶у瓙鏍戝拰相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/tin' title='tin'>tin   struct   oid   add   etc   printf   pac   dde   class   

閾炬帴

鑳屾櫙

(Luogu) (P1122)

棰樻剰

缁欏畾涓€妫?(n) 涓妭鐐圭殑鏃犳牴鏍戠殑 (n-1) 鏉¤竟鍙?(n) 涓偣鐨勬潈鍊?(val_i) 锛屾眰鏌愭5瀛愭爲鐨勬渶澶ф潈鍊煎拰銆?/p>

瑙f硶

杩樻槸鏍戝舰 (dp) 妯℃澘銆?br /> 杩樻槸娌℃湁鏍圭殑鏍戙€?br /> 涓轰簡鏂逛究锛屼笉濡ㄨ (1) 鍙疯妭鐐逛负鏍癸紝鍒欑洿鎺ヤ粠 (1) 鍙风偣寮€濮?(dfs) 鍑烘墍鏈夌偣鐨勭埗浜插嵆鍙€?br /> 涓嶅Θ璁?(f_x) 浠h〃浠?(x) 鑺傜偣涓烘牴鐨勫瓙鏍戠殑鏈€澶ф潈鍊煎拰銆傝杈归泦涓?(E) 锛屽垯鏈?(f_x=sum_limits{(x,y) in E} max { f_y,0 }+val_x) 锛岃姹傜殑涓嶆槸 (f_1) 锛佷笉鏄?(f_1) 锛佷笉鏄?(f_1) 锛佽姹傜殑涓滆タ鏄?(max_limits{i in [1,n]} f_i) 锛侊紒锛?/p>

缁嗚妭

鐢变簬鏈夎礋鏉冨€硷紝璁板緱鎶婄瓟妗堥璁句负 (-inf) 鍐嶆洿鏂般€?/p>

浠g爜

(View) (Code)

#include<bits/stdc++.h>
using namespace std;
inline int read()
{
    int ret=0,f=1;
    char ch=getchar();
    while('9'<ch||ch<'0')
    {
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while('0'<=ch&&ch<='9')
    {
        ret=(ret<<1)+(ret<<3)+ch-'0';
        ch=getchar();
    }
    return ret*f;
}
const int inf=-2147483648;
int n,val[16005],x,y,fa[16005],f[16005],ans=inf;
int num,head[32005];
bool vis[16005];
struct edge
{
    int ver,nxt;
}e[32005];
inline void adde(int u,int v)
{
    e[++num].ver=v;
    e[num].nxt=head[u];
    head[u]=num;
}
void dfs(int x)
{
    vis[x]=1;
    for(register int i=head[x];i;i=e[i].nxt)
    {
        int y=e[i].ver;
        if(vis[y])
            continue;
        vis[y]=1;
        fa[y]=x;
        dfs(y);
    }
}
void dp(int x)
{
    f[x]=val[x];
    for(register int i=head[x];i;i=e[i].nxt)
    {
        int y=e[i].ver;
        if(y==fa[x])
            continue;
        dp(y);
        if(f[y])
            f[x]+=f[y];
    }
}
int main()
{
    n=read();
    for(register int i=1;i<=n;i++)
        val[i]=read();
    for(register int i=1;i<n;i++)
    {
        x=read();
        y=read();
        adde(x,y);
        adde(y,x);
    }
    dfs(1);
    dp(1);
    for(register int i=1;i<=n;i++)
        ans=max(ans,f[i]);
    printf("%d
",ans);
    return 0;
}

以上是关于$Luogu$ $P1122$ 鏈€澶у瓙鏍戝拰的主要内容,如果未能解决你的问题,请参考以下文章

Luogu P4017 鏈€澶ч鐗╅摼璁℃暟

澶у巶鍓嶇寮€鍙戯紝蹇呭宸ュ叿闆嗗悎

銆愮▼搴忓憳蹇呯湅銆慓oogle 2016 I/O 鎶€鏈彮绉樹笌鍓嶇灮

dede鏍囩澶у叏