标签:
题意:给你n个数,求一个最长子序列,要求是这个子序列中任意两个数,其中一个一定是另外一个的倍数
代码如下:
#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> const int N = 1E6+10; using namespace std; int dp[N], a; int main() { int n, maxn; while(~scanf("%d", &n)) { memset(dp, 0, sizeof(dp)); maxn = 0; for(int i = 0; i < n; i++) { scanf("%d", &a); dp[a]++; maxn = max(maxn, dp[a]); for(int j = a * 2; j <= N; j += a) dp[j] = max(dp[j], dp[a]); } printf("%d\n", maxn); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
VK Cup 2015 - Finals F. Clique in the Divisibility Graph
标签:
原文地址:http://blog.csdn.net/doris1104/article/details/47187261