#P2766. 最长不下降子序列问题

    ID: 1771 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>动态规划,dp网络流O2优化最大流网络流 24 题

最长不下降子序列问题

题目描述

给定正整数序列 x1,xnx_1 \ldots, x_n

  1. 计算其最长不下降子序列的长度 ss
  2. 如果每个元素只允许使用一次,计算从给定的序列中最多可取出多少个长度为 ss 的不下降子序列。
  3. 如果允许在取出的序列中多次使用 x1x_1xnx_n(其他元素仍然只允许使用一次),则从给定序列中最多可取出多少个不同的长度为 ss 的不下降子序列。

a1,a2,,asa_1, a_2, \ldots, a_s 为构造 SS 时所使用的下标,b1,b2,,bsb_1, b_2, \ldots, b_s 为构造 TT 时所使用的下标。且 i[1,s1]\forall i \in [1,s-1],都有 ai<ai+1a_i \lt a_{i+1}bi<bi+1b_i \lt b_{i+1}。则 SSTT 不同,当且仅当 i[1,s]\exists i \in [1,s],使得 aibia_i \neq b_i

输入格式

第一行有一个正整数 nn,表示给定序列的长度。接下来的一行有 nn 个正整数x1,...,xnx_1, ..., x_n

输出格式

  • 第 1 行是最长不下降子序列的长度 ss
  • 第 2 行是可取出的长度为 ss 的不下降子序列个数。
  • 第 3 行是允许在取出的序列中多次使用 x1x_1xnx_n 时可取出的长度为 ss不同的不下降子序列个数。
4
3 6 2 5
2
2
3

提示

1n5001 \le n\le 500