6164: 小C的数(number)
[Creator : ]
Description
小 C 非常喜欢数字。这次,他得到了一个长度为 $n$ 的正整数数列 $A$,第 $i$ 项为 $a_i$。
现在,小 C 想要找出来 $A$ 中最长的子序列 $B=\{b_1,\ b_2,\ \dots,\ b_m\}$,使得对于任意的二元组 $(i,\ j)$,$b_i$ 和 $b_j$ 满足倍数关系。
小 C 突然不会最长不下降子序列了,于是找到了你来帮他求出最长的子序列的长度。
子序列:对于长度为 $n$ 的数列 $A$,对于 $B=\{b_1,\ b_2,\ \dots,\ b_m\}$,若 $b_1=a_{p1},\ b_2=a_{p2},\ ...,\ b_m=a_{pm}$,则必须要满足 $1≤p_1<p_2<...<p_m≤n$,这样的数列 $B$ 称为 $A$ 的子序列。其中子序列 $B$ 可以为空。
倍数关系:对于两个数 $a,\ b$,两者成倍数关系,即 $a$ 能被 $b$ 整除,或者 $b$ 能被 $a$ 整除,两者至少一种成立。
现在,小 C 想要找出来 $A$ 中最长的子序列 $B=\{b_1,\ b_2,\ \dots,\ b_m\}$,使得对于任意的二元组 $(i,\ j)$,$b_i$ 和 $b_j$ 满足倍数关系。
小 C 突然不会最长不下降子序列了,于是找到了你来帮他求出最长的子序列的长度。
子序列:对于长度为 $n$ 的数列 $A$,对于 $B=\{b_1,\ b_2,\ \dots,\ b_m\}$,若 $b_1=a_{p1},\ b_2=a_{p2},\ ...,\ b_m=a_{pm}$,则必须要满足 $1≤p_1<p_2<...<p_m≤n$,这样的数列 $B$ 称为 $A$ 的子序列。其中子序列 $B$ 可以为空。
倍数关系:对于两个数 $a,\ b$,两者成倍数关系,即 $a$ 能被 $b$ 整除,或者 $b$ 能被 $a$ 整除,两者至少一种成立。
Input
共两行,第一行有一个正整数 $n$,表示数列 $A$ 的长度;
第二行有 $n$ 个正整数,第 $i$ 个数表示 $a_i$。
第二行有 $n$ 个正整数,第 $i$ 个数表示 $a_i$。
Output
仅一行一个数,表示子序列长度的最大值。
Constraints
对于所有数据:$0<N≤3 \times 10^6,\ 10<a_i≤10^7$。
Sample 1 Input
5
1 2 3 8 16
Sample 1 Output
4
最长子序列为 $\{1,\ 2,\ 8,\ 16\}$,长度为 $4$。
Sample 2 Input
10
1 4 6 3 9 11 16 24 42 36
Sample 2 Output
4
最长长度为 $4$,选取方案不唯一,其中一种最长的子序列为 $\{1,\ 6,\ 3,\ 24\}$。