当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

6348:序列计数

题目描述
度度熊了解到,$1$,$2$,…,$n$ 的排列一共有 $n! = n \times (n-1) \times \cdots \times 1$ 个。现在度度熊从所有排列中等概率随机选出一个排列 $p_1$,$p_2$,…,$p_n$,你需要对 $k$=$1$,$2$,$3$,…,$n$ 分别求出长度为 $k$ 的上升子序列个数,也就是计算满足 $1 \leq a_1$ < $a_2$ < … < $a_k$ $\leq n $ 且 $p_{a_1}$ <$p_{a_2}$< … < $p_{a_k}$ 的 $k$ 元组 ($a_1$,$a_2$,…,$a_k$) 的个数。

由于结果可能很大,同时也是为了 ruin the legend, 你只需要输出结果对 $1000000007(=10^9+7)$ 取模后的值。
输入解释
第一行包含一个整数 $T$,表示有 $T$ 组测试数据。

接下来依次描述 $T$ 组测试数据。对于每组测试数据:

第一行包含一个整数 $n$,表示排列的长度。

第二行包含 $n$ 个整数 $p_1$,$ p_2$, …, $p_n$,表示排列的 $n$ 个数。

保证 $ 1 \leq T \leq 100$,$1 \leq n \leq 10^4$,$T$ 组测试数据的 $n$ 之和 $\leq 10^5$,$p_1$,$p_2$,…,$p_n$ 是 $1$,$2$,…,$n$ 的一个排列。

除了样例,你可以认为给定的排列是从所有 $1$,$2$,…,$n$ 的排列中等概率随机选出的。
输出解释
对于每组测试数据,输出一行信息 "Case #x: $c_1$ $c_2$ ... $c_n$"(不含引号),其中 x 表示这是第 $x$ 组测试数据,$c_i$ 表示长度为 $i$ 的上升子序列个数对 $1000000007(=10^9+7)$ 取模后的值,相邻的两个数中间用一个空格隔开,行末不要有多余空格。
输入样例
2
4
1 2 3 4
4
1 3 2 4
输出样例
Case #1: 4 6 4 1
Case #2: 4 5 2 0
来自杭电HDUOJ的附加信息
Recommend chendu

该题目是Virtual Judge题目,来自 杭电HDUOJ

源链接: HDU-6348

最后修改于 2020-10-25T23:30:32+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
4500/4000MS(Java/Others) 262144/262144K(Java/Others)