loj#P3228. 「USACO 2019.12 Platinum」Tree Depth
「USACO 2019.12 Platinum」Tree Depth
题目描述
题目译自 USACO 2019 December Contest, Platinum Problem 3. Tree Depth
为了迎接新年,Farmer John 决定给他的奶牛们一个节日二叉搜索树!
为了生成这个二叉搜索树,Farmer John 从一个 的排列 开始,然后以参数 和 开始运行如下的伪代码:
generate(l,r):
if l > r, return empty subtree;
x = argmin_{l <= i <= r} a_i; // index of min a_i in {a_l,...,a_r}
return a BST with x as the root,
generate(l,x-1) as the left subtree,
generate(x+1,r) as the right subtree;
例如,排列 将产生如下的二叉搜索树:
令 表示节点 在用排列 生成的二叉搜索树中的深度。深度定义为这个节点到根节点的路径上的点数。在上述例子中,。
中的逆序对数等于满足 且 的数对 的个数。奶牛们知道 Farmer John 用来生成二叉搜索树的排列 中恰好有 个逆序对。对于所有满足条件的 ,请计算对于每个 , 对 取模后的结果。
输入格式
输入只有一行,包含三个整数 。
输出格式
输出一行 个整数,第 个整数表示 。两个整数之间用一个空格隔开。
3 0 192603497
1 2 3
3 1 144408983
3 4 4
数据范围与提示
对于全部数据,,保证 是一个 范围中的质数。
对于测试点 ,满足 ;
对于测试点 ,满足 ;
对于测试点 ,满足 。