题目名称 2315. [HZOI 2015]奈特
输入输出 K_night.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 GravatarAglove 于2016-05-15加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:16, 提交:48, 通过率:33.33%
GravatarONCE AGAIN 100 0.951 s 65.91 MiB C++
GravatarGo灬Fire 100 0.956 s 34.76 MiB C++
Gravataryourfather 100 0.958 s 65.91 MiB C++
GravatarNew World 100 0.975 s 34.76 MiB C++
Gravatarliu_runda 100 1.057 s 70.10 MiB C++
Gravatar哒哒哒哒哒! 100 1.072 s 48.47 MiB C++
Gravatar_Itachi 100 1.250 s 29.67 MiB C++
Gravatar神利·代目 100 1.328 s 29.28 MiB C++
Gravatarymxbiss 100 1.359 s 29.28 MiB C++
GravatarL_in 100 1.413 s 121.36 MiB C++
关于 奈特 的近10条评论(全部评论)
到现在还二分搞错了,就这样醉生醉死了一下午。。
Gravatar_Itachi
2017-03-20 20:23 3楼
可持久化树链剖分又好写又跑得快
Gravatarliu_runda
2017-03-20 13:47 2楼
题解戳http://www.cnblogs.com/joyouth/p/5496830.html
GravatarAglove
2016-05-16 06:35 1楼

2315. [HZOI 2015]奈特

★★   输入文件:K_night.in   输出文件:K_night.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目描述】

我们有n个城市,这些城市的关系组成了一棵有根树,首都是树根

要求你支持以下操作:

第i个操作有以下两种形式:

1、1 u 表示在第i个时刻u这个城池被野蛮人的军队暴揍了一顿

2、2 u v k val

这个操作表示国王将从u城池走到v城池,但是这个国王是处女座

所以他只会在没有被揍过的城市或者这个城市被揍的时刻<=val的城市中停留休息

又因为这个国王很懒,所以他能休息就一定会休息

现在国王希望每次出行前都能知道他第k个休息的城市的编号是多少

如果他休息不足k次就可以到达v城池,请输出-1

由于野蛮人很奇怪,所以野蛮人不会暴揍一个城池两次或两次以上

注意国王并不会在起点和终点休息

【输入格式】

第一行输入n表示节点数量

以下n个正整数分别表示每个城市的父亲,父亲为0的节点为首都

之后输入m表示操作次数

以下m个操作如题意所示

数据保证每个城池最多会被揍过一次

数据保证u!=v,数据保证当第i个操作是第二种操作时,0<=val<=i

数据保证n,m<=100000

【输出格式】

对于第二种操作输出相应的答案

【样例输入】

样例输入1:


3

0 1 2

5

2 1 3 1 0

1 2

2 1 3 1 0

2 1 3 1 1

2 1 3 1 2

样例输入2:

6

2 5 2 2 0 5

3

2 1 6 2 0

1 2

2 4 5 1 0


【样例输出】

样例输出1:

2

-1

-1

2

样例输出2:

5

-1