hiho week 76 register

Ended

Participants:183

Verdict:Accepted
Score:100 / 100
Submitted:2015-12-15 21:33:55

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <cstdio>
#include <cstring>
#define rep(i,n) for(int i = 0; i < n; i++)
#define cls(p,b) memset(p,b,sizeof(p));
#define N 100
int s[N],t[N]={0},dp[N][N+1];
int hd[N],nt[N<<1],to[N<<1],num=0;
void conn(int u,int v) {
    nt[num] = hd[u];
    to[num] = v;
    hd[u] = num++;
}
int go(int u,int w) {
    int res = 0;
    for(int i = hd[u]; ~i; i = nt[i]) {
        int v = to[i];
        if(v==w) continue;
        res+=go(v,u);
    }
    if(u) if(res || t[u]) {
        res ++;
        s[0] += s[u];
        s[u] = 0;
    }
    return res;
}
int dfs(int u,int w,int m) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX