我们要求的是“按数值区分”的 LIS(最长上升子序列)的条数:同一数值序列只算 1 次,即使出现位置不同。 关键观察:
把数组中每个不同的数值当作一个节点 v。设
小 A 有一排共 n 张卡片,第 i 张卡片上写有一个正整数 ai。他想从中挑选若干张卡片,保持原有顺序,要求选出的卡片上的数字严格递增。他只关心最终得到的数字序列,若两种挑选方式产生的数字序列相同,则视为同一种方案。请帮他计算最长的数字序列有多少种不同的方案。答案可能很大,请输出对 998244353 取模后的结果。
严格定义:若序列 B 可以通过删除原序列 A 的若干(可能为零)元素并保持顺序得到,则称 B 为 A 的一个 子列。若序列中任意相邻元素满足前一个小于后一个,则称该序列为 严格递增序列。两个序列称为 不同,当且仅当它们长度不同,或在某一位置上的数字不同。
数据范围:
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册