zoukankan      html  css  js  c++  java
  • codeforces264B

    题意:给你一个严格递增的数列,问你从中选出数使得每个数与前一个数不互质且长度最长的数列长度为多少

    解题思路:

    用质因子筛法 http://www.cnblogs.com/zyue/p/3716938.html

    求这个质因子最迟在哪里出现过假设是K,dp[i] = max(dp[i],dp[k]+1);

    解题代码:

     1 // File Name: 264b.cpp
     2 // Author: darkdream
     3 // Created Time: 2014年07月26日 星期六 14时55分43秒
     4 
     5 #include<vector>
     6 #include<list>
     7 #include<map>
     8 #include<set>
     9 #include<deque>
    10 #include<stack>
    11 #include<bitset>
    12 #include<algorithm>
    13 #include<functional>
    14 #include<numeric>
    15 #include<utility>
    16 #include<sstream>
    17 #include<iostream>
    18 #include<iomanip>
    19 #include<cstdio>
    20 #include<cmath>
    21 #include<cstdlib>
    22 #include<cstring>
    23 #include<ctime>
    24 
    25 using namespace std;
    26 int prime[100005][20];
    27 int hs[100005];
    28 int num[100005];
    29 int k = 0 ; 
    30 void solve(){
    31     memset(num,0,sizeof(num));
    32     memset(hs,0,sizeof(hs));
    33     for(int i = 2 ;i <= 100000;i ++)
    34     {
    35        if(hs[i] == 0 )
    36        {
    37            int k = i;
    38            while(k <= 100000)
    39            {
    40               num[k] ++ ; 
    41               prime[k][num[k]] = i ; 
    42               hs[k] = 1; 
    43               k += i ;
    44            }
    45        }
    46      
    47     }
    48 }
    49 int dp[100005];
    50 int main(){
    51     int n ; 
    52     scanf("%d",&n);
    53     for(int i = 1;i <= n;i ++)
    54         dp[i] = 1; 
    55     solve();
    56     int maxn = 1;
    57     memset(hs,0,sizeof(hs));
    58     for(int i =1 ;i<= n;i ++)
    59       {
    60         int temp ; 
    61         scanf("%d",&temp);
    62         int p = 1;
    63         for(int j =1 ; j <= num[temp];j ++)
    64         {
    65             if(hs[prime[temp][j]])
    66             {
    67                dp[i] = max(dp[i],dp[hs[prime[temp][j]]] + 1);
    68             }
    69             hs[prime[temp][j]] = i ; 
    70         }
    71         maxn = max(maxn,dp[i]);
    72       }
    73     printf("%d
    ",maxn);    
    74  return 0;
    75 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    cnblog项目--20190309
    django js引入失效问题
    Python老男孩 day16 函数(六) 匿名函数
    Python老男孩 day16 函数(五) 函数的作用域
    Python老男孩 day15 函数(四) 递归
    Python老男孩 day15 函数(三) 前向引用之'函数即变量'
    Python老男孩 day15 函数(二) 局部变量与全局变量
    Python老男孩 day14 函数(一)
    Python老男孩 day14 字符串格式化
    Python老男孩 day14 集合
  • 原文地址:https://www.cnblogs.com/zyue/p/3870192.html
Copyright © 2011-2022 走看看