题目名称 2377. [HZOI 2015]QAQ的LIS树
输入输出 Tree_LIS.in/out
难度等级 ★★☆
时间限制 2000 ms (2 s)
内存限制 512 MiB
测试数据 10
题目来源 GravatarAglove 于2016-07-08加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:4, 提交:16, 通过率:25%
Gravatarzzzzzfy 100 0.796 s 19.01 MiB C++
GravatarLincHpin 100 0.817 s 10.44 MiB C++
GravatarAglove 100 3.500 s 9.28 MiB C++
Gravatardemon 100 7.394 s 35.13 MiB C++
GravatarAglove 80 6.501 s 12.62 MiB C++
Gravatardemon 70 8.869 s 52.34 MiB C++
GravatarAglove 50 1.413 s 20.22 MiB C++
Gravatardemon 50 7.888 s 19.63 MiB C++
Gravatardemon 50 7.923 s 19.63 MiB C++
Gravatardemon 50 9.016 s 29.75 MiB C++
关于 QAQ的LIS树 的近10条评论(全部评论)
题解戳http://www.cnblogs.com/joyouth/p/5655900.html
GravatarAglove
2016-07-09 15:00 1楼

2377. [HZOI 2015]QAQ的LIS树

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

【题目描述】

QAQ喜欢玩LIS,有一天他看到这样的一道题目:

给定一棵树,求最长的路径使得路径上所有的点权连起来是一个上升序列

他思考了一下用树分治切掉了这道题目,不过QAQ觉得这样的题目非常的因缺思烃

于是就有了如下题目:

QAQ生成了一棵树,树的大小为n,节点为0->n-1,根为0

一开始所有点权都是0,有如下操作:

1、M u v QAQ施展LIS大魔法,将u点的点权+v

2、C u  QAQ施展LIS小魔法,他可以花费1点魔法值将某个点的点权+1,他现在希望u点到根节点的路径所有的点权构成一个上升序列

他需要你告诉他最少需要花费多少点魔法值才能完成这件事情

注意由于QAQ很懒而且很弱,魔法值很少,所以对于操作2他并不会去真正的更改点权,也就是2的询问对点权不会产生影响

【输入格式】

第一行输入n表示点数

以下n-1行,每行一个正整数,第i行的正整数表示i节点的父亲

之后输入m表示操作次数

以下m行每行一个操作如题意所示

【输出格式】

对于每个操作2输出答案

【样例输入】

5

0

1

1

2

5

M 4 1572

M 4 13890

C 1

C 4

C 0

【样例输出】

1

46392

0

【提示】

有30%的数据,n<=1000,m<=2000

另外有20%的数据,树是随机的

另外有20%的数据,树是一条链

另外有10%的数据,所有点的父亲都是根

对于100%的数据,n<=50000,m<=100000,v<=2^16

出题人非常的良心,开了标程两倍左右的时限OwO