码迷,mamicode.com
首页 > 其他好文 > 详细

VK Cup 2015 - Finals F. Clique in the Divisibility Graph

时间:2015-08-01 17:26:05      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

题目链接

题意:给你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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!