• P3047 [USACO12FEB]附近的牛Nearby Cows


    https://www.luogu.org/problemnew/show/P304 1 #include <bits/stdc++.h> 2 #define up(i,l,r) for(register int i = (l); i <= (r); ++i) 3 #define dn(i,l,r) for(register int i = (l); i >= (r); --i) 4 #define ll long long

     5 #define re register
     6 using namespace std;
     7 
     8 template <typename T> void in(T &x) {
     9     x = 0; T f = 1; char ch = getchar();
    10     while(!isdigit(ch)) {if(ch == '-') f = -1; ch = getchar();}
    11     while( isdigit(ch)) {x = 10 * x + ch - 48; ch = getchar();}
    12     x *= f;
    13 }
    14 
    15 template <typename T> void out(T x) {
    16     if(x < 0) x = -x , putchar('-');
    17     if(x > 9) out(x/10);
    18     putchar(x%10 + 48);
    19 }
    20 
    21 int n,k;
    22 const int N = 100007;
    23 struct edge {
    24     int v,nxt;
    25 }e[N<<1]; int tot,head[N];
    26 void add(int u,int v) {e[++tot] = (edge){v,head[u]}; head[u] = tot;}
    27 
    28 int f[2][N][25],c[N];
    29 
    30 void dfs1(int u,int fa) {
    31     up(i,0,k)
    32     f[0][u][i] = c[u];
    33 for(re int i = head[u]; i ; i = e[i].nxt) { 34 int v = e[i].v; 35 if(v == fa) continue; 36 dfs1(v,u); 37 up(i,1,k) 38 f[0][u][i] += f[0][v][i-1]; 39 } 40 } 41 42 void dfs2(int u,int fa) { 43 44 f[1][u][0] = c[u]; 45 up(i,1,k) f[1][u][i] = f[1][fa][i-1] - f[0][u][i-2] + f[0][u][i]; 46 //别忘了+f[0][u][i] 47 for(re int i = head[u]; i ; i = e[i].nxt) { 48 int v = e[i].v; 49 if(v == fa) continue; 50 dfs2(v,u); 51 } 52 } 53 54 int main() { 55 freopen("input.txt","r",stdin); 56 in(n); in(k); 57 int u,v; 58 up(i,1,n-1) { 59 in(u); in(v); 60 add(u,v); add(v,u); 61 } 62 up(i,1,n) in(c[i]); 63 dfs1(1,0); 64 65 up(i,1,k) 66 f[1][0][i] = f[0][1][i-1]; 67 //必须给0号节点赋初值 68 dfs2(1,0); 69 70 up(i,1,n) out(f[1][i][k]),putchar(' '); 71 return 0; 72 }
  • 相关阅读:
    Shell 基本运算符
    如何将mongo查询结果导出到文件中
    python如何将自己写的代码打包供他人使用
    json格式化
    如何在linux安装ruby2.2.2+
    如何对字符串进行码表替换转码--加密encode
    git基础
    如何创建redis集群
    linux安装python2.7
    如何在windows和linux搭建django环境
  • 原文地址:https://www.cnblogs.com/mzg1805/p/10570149.html
Copyright © 2020-2023  润新知