F. 最长上升子序列
time limit per test
2.0 s
memory limit per test
256 megabytes
input
standard input
output
standard output
你原本有一个 1 到 n 的排列,但是不慎地,你遗忘了它,但是你记得以 第i个位置 结尾的最长上升子序列的长度数组 { an} ,现在希望你能够构造一个符合条件的排列 p ,如果不存在符合上述条件的排列 p ,则输出 - 1。
这里定义以 第i位置 结尾的最长上升子序列的长度,为符合以下条件的整数数组 中 k 的最大值。
本题输入输出量比较大,请选手注意。
Input
第一行一个整数 n (1 ≤ n ≤ 106)
第二行 n 个整数表示数组 { an} (1 ≤ ai ≤ n),其中 ai 表示以 i 结尾的最长上升子序列的长度。
Output
一行 n 个整数表示排列

文章介绍了如何根据最长上升子序列长度数组构建排列的算法,给出C++代码实现,以及示例输入输出。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



