传统题 1000ms 256MiB

代数学家

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

代数学家

时间限制:1000ms

空间限制:256MB

题目描述

最近小添玩某三国为背景的游戏时遇到了一个叫做裴秀的角色,他拥有一个非常有趣的技能叫做“行图”——“当你使用一张牌结算结束后,会记录这张牌的点数。当你再次使用牌时,如果这张牌的点数是之前记录点数的约数,你可以摸一张牌”。

于是小添非常喜欢这个技能,甚至在打XCPC的时候都要带着这个角色的卡牌。于是他在想应该如何让这个技能能抽取最多的牌?

这里我们考虑一个简化的模型,假设你现在有n张牌,每张牌都有一个不超过m的正整数点数aia_i。现在你要不重复的选取{ai}\{a_i\}中的数构成一个子列{abi}(ij,bibj)\{a_{b_i}\}(若i \neq j,则b_i \neq b_j),使得{abi+1}\{a_{b_{i+1}}\}总是{abi}\{a_{b_{i}}\}的约数。小添希望你求出这个子列{abi}\{a_{b_i}\}的最大长度。

输入格式

第一行两个数字n和m,分别表示有n张牌和点数不超过m。 接下来一行有n个数,其中第i个数{ai}\{a_i\}表示第i张牌的点数。

输出格式

输出一个数,子列的最大长度。

样例输入1

6 13
12 6 7 3 2 1

样例输出1

4

样例1解释

最长的子列可以是{12,6,3,1}。

样例输入2

16 16
3 15 7 12 16 10 6 7 11 5 2 14 13 8 9 16

样例输出2

4

数据范围及约定

对于 60%60\% 的数据,n,m20n,m \leq 20

对于所有数据,n10000n \leq 10000m200m \leq 200ama \leq mn,m,aZ+n,m,a \in \mathbb{Z}^+

2024秋悬赏令第二周

未参加
状态
已结束
规则
IOI
题目
6
开始于
2024-10-20 18:30
结束于
2024-10-27 18:30
持续时间
168 小时
主持人
参赛人数
65