#15. 阿坡李尅铁夫(applicative)
阿坡李尅铁夫(applicative)
题目背景
instance Applicative [] where
-- pure :: a -> [a]
pure x = [x]
-- (<*>) :: [a -> b] -> [a] -> [b]
gs <*> xs = [g x | g <- gs, x <- xs]
你确信你是站在三万英尺的高空吗?
题目描述
给定一棵 个点的树,1 号点为根。给定一个整数 。
对于树上的每个结点 ,有三个参数 ,你需要在 到根的路径上(不包括 )选择至少 个结点,在 的子树(不包括 )中选择至少 个结点。你需要保证你总共选择了 个结点。然后,令 表示 上面被选择的结点到 的距离和, 表示 子树中被选择的结点到 的距离和,你需要求出 的最小值。
两点之间的距离为两点之间简单路径上的边数。
Notice
询问是每次选的,无解的情况可以参见样例.
输入格式
第一行两个整数 。
接下来 行,每行两个整数 ,表示一条树上的边。
接下来 行,每行三个整数 ,表示结点 的参数。
输出格式
输出一行 个整数表示答案。特别地,若对于一个结点,你无法按要求选择结点,则输出 。
样例一
input
5 2
1 2
1 3
2 4
2 5
0 0 -1
0 0 0
1 0 1
0 0 2
0 0 1
output
3 0 -1 5 4
样例二
见下发文件中的 applicative/applicative2.in 以及 applicative/applicative2.ans。
限制与约定
对于前 的数据,。
对于前 的数据,。
对于前 的数据,。
对于另外 的数据,保证对于 ,存在连接 与 的边。
对于 的数据,,,,保证输入的是一棵树。对于 ,保证 不超过 到根路径上的结点个数(不包括 ),保证 不超过 的子树中的结点个数(不包括 ),保证 。
相关
在下列比赛中:
京公网安备 11011102002149号