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

    ID: 1775 Type: RemoteJudge 1000ms 125MiB Tried: 0 Accepted: 0 Difficulty: 8 Uploaded By: Tags>动态规划,dp网络流O2优化最大流网络流与线性规划 24 题

最长不下降子序列问题

题目描述

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

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

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

输入格式

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

输出格式

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

提示

1≤n≤5001 \le n\le 500