zoukankan      html  css  js  c++  java
  • 2783: [JLOI2012]树

     1 var
     2   max,u,v,ans,s,i,j,k,n,m:longint;
     3   p,sum:array[0..100000,0..20]of longint;
     4   f,d,x:Array[0..100000]of longint;
     5 procedure dou(a:longint);
     6   var now,i,j,k:longint;
     7   begin
     8   now:=x[a];
     9   if a=1 then begin if now=s then inc(ans); exit;end;
    10   k:=trunc(ln(d[a])/ln(2));
    11   for i:=k downto 0 do
    12     begin
    13     if (now+sum[a,i]<=s) then
    14       begin
    15       now:=now+sum[a,i];
    16       a:=p[a,i];
    17       end;
    18     if now=s then break;
    19     end;
    20   if now=s then inc(ans);
    21   end;
    22 
    23 begin
    24   readln(n,s);
    25   for i:=1 to n do
    26     read(x[i]);
    27   for i:=1 to n-1 do
    28     begin
    29     readln(u,v);
    30     f[v]:=u;
    31     d[v]:=d[u]+1;
    32     if d[v]>max then
    33       max:=d[v];
    34     end;
    35   k:=trunc(ln(max)/ln(2));
    36   for i:=1 to n do
    37     sum[i,0]:=x[f[i]];
    38   for i:=1 to n do p[i,0]:=f[i];
    39   for j:=1 to k do
    40     for i:=1 to n do
    41       begin
    42       p[i,j]:=p[p[i,j-1],j-1];
    43       sum[i,j]:=sum[i,j-1]+sum[p[i,j-1],j-1];
    44       end;
    45   for i:=1 to n do
    46     if (x[i]<=s) then
    47       dou(i);
    48   writeln(ans);
    49   end.
    ------------------------------------------------------------------------- 花有重开日,人无再少年
  • 相关阅读:
    npm
    模块化开发
    Html input 标签
    H5 移动端布局
    Mysql指令
    php面向对象
    git指令
    css3 属性
    如何渲染数据
    angular 服务
  • 原文地址:https://www.cnblogs.com/lbz007oi/p/2939307.html
Copyright © 2011-2022 走看看