bzoj2060

树形dp

dp[x][0]表示x点父亲没选,dp[x][1]表示x点父亲选了,然后dp[x][0]=max(sigma(dp[c[x]][0]),sigma(dp[c[x]][1])) dp[x][1]=sigma(dp[c[x][0]])

答案就是dp[1][0] 根没有父亲

#include<bits/stdc++.h>
using namespace std;
const int N = 50010;
int n,cnt = 1;
int head[N], dp[N][2];
struct edge {
    int nxt, to;
} e[N << 1];
inline void link(int u, int v)
{
    e[++cnt].nxt = head[u];
    head[u] = cnt;
    e[cnt].to = v;
}
void dfs(int u, int last)
{
    int sum_0 = 0, sum_1 = 0;
    for(int i = head[u]; i; i = e[i].nxt)
    {
        if(e[i].to == last) continue;
        dfs(e[i].to, u);
        sum_0 += dp[e[i].to][0];
        sum_1 += dp[e[i].to][1];
    }
    dp[u][0] = max(sum_0, sum_1 + 1);
    dp[u][1] = sum_0;
}
int main()
{
    scanf("%d", &n);
    for(int i = 1; i < n; ++i)
    {
        int u, v;
        scanf("%d%d", &u, &v);
        link(u, v);
        link(v, u);
    }
    dfs(1, 0);
    printf("%d\n", dp[1][0]);
    return 0;
}

时间: 2024-10-09 01:23:47

bzoj2060的相关文章

[codevs1380]没有上司的舞会([BZOJ2060][Usaco2010 Nov]Visiting Cows 拜访奶牛)

[codevs1380]没有上司的舞会 试题描述 Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个快乐指数.现在有个周年庆宴会,要求与会职员的快乐指数最大.但是,没有职员愿和直接上司一起与会. 输入 第一行一个整数N.(1<=N<=6000)接下来N行,第i+1行表示i号职员的快乐指数Ri.(-128<=Ri<=127)接下来N-1行,每行输入一对整数L,K.表示K是L的直接上司.最后一行输入

bzoj2060[Usaco2010 Nov]Visiting Cows 拜访奶牛*

bzoj2060[Usaco2010 Nov]Visiting Cows 拜访奶牛 题意: 给棵树,要求如果取了某个节点就不能取与它相邻的节点,问最多可取几个节点.树的大小≤50000. 题解: 树形dp.令f[i][0]不取i节点,f[i][1]为取i节点,则方程为f[i][0]=sum(max(f[j][0],f[j][1]+1)),f[i][1]=sum(f[j][0]),j为i的子节点.最后答案为max(f[1][0],f[1][1]+1).注意不要漏了那个“+1”. 代码: 1 #in

大神刷题表

9月27日 后缀数组:[wikioi3160]最长公共子串 dp:NOIP2001统计单词个数 后缀自动机:[spoj1812]Longest Common Substring II [wikioi3160]最长公共子串 [spoj7258]Lexicographical Substring Search 扫描线+set:[poj2932]Coneology 扫描线+set+树上删边游戏:[FJOI2013]圆形游戏 结论:[bzoj3706][FJ2014集训]反色刷 最小环:[poj1734

[转载]hzwer的bzoj题单

counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ1202 BZOJ1051 BZOJ1001 BZOJ1588 BZOJ1208 BZOJ1491 BZOJ1084 BZOJ1295 BZOJ3109 BZOJ1085 BZOJ1041 BZOJ1087 BZOJ3038 BZOJ1821 BZOJ1076 BZOJ2321 BZOJ1934 BZOJ