F. Graph Without Long Directed Paths
题意
一个严格递增的数列, 一个严格递减的数列, 将它们保持原相对顺序不变合并在一起. 给出合并后的数列.
题解1 (greedy)
维护一个递增数列 A, 一个递减的数列 B, 当只能插入一个数列的时候插入对应数列, 当两个都不能插入时输出”NO”, 当两个都能插入时, 若下一个数大于当前数, 插入 A, 否则插入 B.
题解2 (dp)
$dp[ i ][ 0 ]$表示处理完前 $i$ 个, 第 $i$ 个是递增序列序列里的元素,递减序列的最大值。
$dp[ i ][ 1 ]$表示处理完前 $i$ 个, 第 $i$ 个是递减序列序列里的元素,递增序列的最小值。
代码
1 | int a[N],flag[N]; |