Description
在这个问题中,给定一个值S和一棵树。在树的每个节点有一个正整数,问有多少条路径的节点总和达到S。路径中节点的深度必须是升序的。假设节点1是根节点,根的深度是0,它的儿子节点的深度为1。路径不必一定从根节点开始。
Input
第一行是两个整数N和S,其中N是树的节点数。
第二行是N个正整数,第i个整数表示节点i的正整数。
接下来的N-1行每行是2个整数x和y,表示y是x的儿子。
Output
Sample Input
Sample Output
HINT
对于100%数据,N≤100000,所有权值以及S都不超过1000。
题解
遍历一遍,将根到当前节点路径上的所有的点的树上前缀和压入栈中。
查找时二分栈即可。
1 //It is made by Awson on 2017.9.29 2 #include 3 #include