#145. Tree Depth
0
Tree Depth
Tree Depth
题目描述
为了迎接新年,农夫约翰决定送给他的奶牛们一棵喜庆的二叉搜索树(BST)!
为了生成这棵 BST,FJ 先从整数 的一个排列 开始,其中 。然后他以参数 和 运行如下伪代码。
generate(l,r):
if l > r, return empty subtree;
x = argmin_{l <= i <= r} a_i; // {a_l,...,a_r} 中最小的 a_i 的下标
return a BST with x as the root,
generate(l,x-1) as the left subtree,
generate(x+1,r) as the right subtree;
例如,排列 会生成如下 BST:
4
/
2 5
/ \
1 3
令 表示对应于排列 的树中结点 的深度,即从 到根的路径上结点的数量。在上面的例子中, 且
排列 的逆序对数量等于满足 且 的整数对 的数量。奶牛们知道,FJ 用于生成 BST 的排列 恰好有 个逆序对 。在所有满足该条件的排列 中,对于每个 ,计算 除以 的余数。
输入格式
输入只有一行,包含三个用空格分隔的整数 和 ,并以换行结束。 是一个素数,范围为 。
输出格式
输出 个用空格分隔的整数,表示对于每个 , 的值。
3 0 192603497
1 2 3
3 1 144408983
3 4 4
提示
BATCHING: 测试点 3-4 满足 测试点 5-7 满足 测试点 8-10 满足 这里,唯一的排列是 这里,这两个排列是 和 题目鸣谢:Yinzhan Xu
标签: USACO|2019|Platinum
来源
USACO|2019|Platinum