#P2982. [USACO10FEB] Slowing down G

    ID: 2028 Type: RemoteJudge 1000ms 125MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>2010线段树USACO树状数组深度优先搜索,DFS

[USACO10FEB] Slowing down G

题目描述

Every day each of Farmer John's N (1N100,000)(1 \le N \le 100,000) cows conveniently numbered 1..N1..N move from the barn to her private pasture. The pastures are organized as a tree, with the barn being on pasture 11. Exactly N1N-1 cow unidirectional paths connect the pastures; directly connected pastures have exactly one path. Path ii connects pastures AiA_i and BiB_i (1AiN,1BiN)(1 \le A_i \le N,1 \le B_i \le N).

Cow ii has a private pasture Pi(1PiN)P_i(1 \le P_i \le N). The barn's small door lets only one cow exit at a time; and the patient cows wait until their predecessor arrives at her private pasture. First cow 11 exits and moves to pasture P1P_1. Then cow 22 exits and goes to pasture P2P_2, and so on.

While cow ii walks to PiP_i she might or might not pass through a pasture that already contains an eating cow. When a cow is present in a pasture, cow ii walks slower than usual to prevent annoying her friend.

Consider the following pasture network, where the number between
parentheses indicates the pastures' owner.

        1 (3)        
       / \
  (1) 4   3 (5)
     / \   
(2) 2   5 (4)

First, cow 1 walks to her pasture:

        1 (3)        
       / \
  [1] 4*  3 (5)
     / \   
(2) 2   5 (4)

When cow 2 moves to her pasture, she first passes into the barn's
pasture, pasture 1. Then she sneaks around cow 1 in pasture 4 before
arriving at her own pasture.

        1 (3)
       / \
  [1] 4*  3 (5)
     / \   
[2] 2*  5 (4)

Cow 3 doesn't get far at all -- she lounges in the barn's pasture, #1.

        1* [3]
       / \
  [1] 4*  3 (5)
     / \   
[2] 2*  5 (4)

Cow 4 must slow for pasture 1 and 4 on her way to pasture 5:

        1* [3]
       / \
  [1] 4*  3 (5)
     / \   
[2] 2*  5* [4]

Cow 5 slows for cow 3 in pasture 1 and then enters her own private pasture:

        1* [3]
       / \
  [1] 4*  3*[5]
     / \   
[2] 2*  5* [4]

FJ would like to know how many times each cow has to slow down.

每天 Farmer John 的 NN 头奶牛,编号 1N1 \ldots N,从粮仓走向他的自己的牧场。牧场构成了一棵树,粮仓在 11 号牧场。恰好有 N1N-1 条道路直接连接着牧场,使得牧场之间都恰好有一条路径相连。第 ii 条路连接着 AiA_iBiB_i。奶牛们每人有一个私人牧场 PiP_i。粮仓的门每次只能让一只奶牛离开。耐心的奶牛们会等到他们的前面的朋友们到达了自己的私人牧场后才离开。首先奶牛 11 离开,前往 P1P_1;然后是奶牛 22,以此类推。

当奶牛 ii 走向牧场 PiP_i 的时候,他可能会经过正在吃草的同伴旁。当路过已经有奶牛的牧场时,奶牛 ii 会放慢自己的速度,防止打扰他的朋友。

FJ 想要知道奶牛们总共要放慢多少次速度。

输入格式

* Line 11: Line 11 contains a single integer: NN

* Lines 2..N2..N: Line i+1i+1 contains two space-separated integers: AiA_i and BiB_i

* Lines N+1..N+NN+1..N+N: line N+iN+i contains a single integer: PiP_i

第一行:有一个整数 NN

2N2 \sim N 行:第 i+1i+1 行有两个以空格隔开的整数 AiA_iBiB_i

N+1N+NN+1 \sim N+N 行:第 N+iN+i 行有一个整数 PiP_i

输出格式

* Lines 1N1 \sim N:Line ii contains the number of times cow ii has to slow down.

1N1 \sim N 行:第 ii 行包括奶牛 ii 需要放慢速度的次数。

5 
1 4 
5 4 
1 3 
2 4 
4 
2 
1 
5 
3 

0 
1 
0 
2 
1 

提示

数据范围:1Ai,Bi,PiN1051 \leq A_i,B_i,P_i\leq N \leq 10^5