#P4216. 情报传递

    ID: 1044 传统题 3000ms 512MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>2300洛谷2015树链剖分树状数组离线处理

情报传递

情报传递

  • 时间限制:3 秒
  • 内存限制:512 MiB

题目描述

奈特公司有一个由 nn 名情报员组成的情报网络。除一名大头目外,每名情报员都有且仅有一名上线;任意两名情报员都能沿着唯一的联络路径传递情报。

公司每天恰好派发一个任务:

  1. 指派 TT 号情报员开始搜集情报;
  2. 将一条情报从 XX 号情报员传递给 YY 号情报员。

所有情报员最初的危险值均为 00。一旦某名情报员开始搜集情报,他的危险值便持续增加:开始搜集当天仍为 00,一天后为 11,两天后为 22,依此类推。传递情报不会增加危险值。

每条待传递的情报都有风险控制值 CC。在从 XXYY 的路径上,危险值严格大于 CC 的情报员会对该条情报构成威胁。

对于每个传递情报任务,请求出路径上的情报员总数以及其中构成威胁的情报员数量。

输入格式

第一行包含一个正整数 nn,表示情报员数量。

第二行包含 nn 个非负整数 P1,P2,,PnP_1,P_2,\ldots,P_nPiP_i 表示 ii 号情报员的上线编号;Pi=0P_i=0 表示 ii 号情报员是大头目。输入保证这些关系构成一棵树。

第三行包含一个正整数 qq,表示任务数量,每天执行一个任务。

随后 qq 行按时间顺序描述任务:

  • 1 X Y C:将情报从 XX 号情报员传递给 YY 号情报员,风险控制值为 CC
  • 2 T:指派 TT 号情报员开始搜集情报。

输出格式

对于每个传递情报任务输出一行两个整数,依次表示路径上的情报员总数和其中构成威胁的情报员数量。

样例输入 1

7
0 1 1 2 2 3 3
6
1 4 7 0
2 1
2 4
2 7
1 4 7 1
1 4 7 3

样例输出 1

5 0
5 2
5 1

数据范围

1n,q2×1051\le n,q\le 2\times 10^50Pi,Cin0\le P_i,C_i\le n1Ti,Xi,Yin1\le T_i,X_i,Y_i\le n

子任务编号 分值 特殊限制
1 20 n,q1000n,q \le 1000
2 40 情报网络是一条链
3 无特殊限制