Codeforces 264b Good Sequences dp

Source: Internet
Author: User

Codeforces 264b Good Sequences dp

Click to open the link.

Good Sequencestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

Squirrel Liss is interested in sequences. She also has preferences of integers. She thinksNIntegersA1 ,?A2 ,?...,?ANAre good.

Now she is interested in good sequences. A sequenceX1 ,?X2 ,?...,?XKIs called good if it satisfies the following three conditions:

  • The sequence is strictly increasing, I. e.XI? XI? +? 1 for eachI(1? ≤?I? ≤?K? -? 1 ).
  • No two adjacent elements are coprime, I. e.Gcd(XI,?XI? +? 1)?>? 1 for eachI(1? ≤?I? ≤?K? -? 1) (whereGcd(P,?Q) Denotes the greatest common divisor of the integersPAndQ).
  • All elements of the sequence are good integers.

    Find the length of the longest good sequence.

    Input

    The input consists of two lines. The first line contains a single integerN(1? ≤?N? ≤? 105)-the number of good integers. The second line contains a single-space separated list of good integersA1 ,?A2 ,?...,?ANIn strictly increasing order (1? ≤?AI? ≤? 105;AI? AI? +? 1 ).

    Output

    Print a single integer-the length of the longest good sequence.

    Sample test (s) input
    52 3 4 6 9
    Output
    4
    Input
    91 2 3 5 6 7 8 9 10
    Output
    4
    Note

    In the first example, the following sequences are examples of good sequences: [2; 4; 6; 9], [2; 4; 6], [3; 9], [6]. the length of the longest good sequence is 4.


    An extremely bad question !!

    The question was wrong for two days !!

    Nima was originally input data a (I)

    I thought it was a sub-sequence requirement !!

    Why are there so many ac users !!

    Well, it's my English scum ..

    Okay, I have not reviewed the question ..

    Well, even so, I didn't expect it at the beginning ..

    Status ..

    Code:

    #include
       
        #include
        
         int dp[100100],mot[100100],a[100100];int xx;int maxx(int a,int b){    return a>b?a:b;}void getmot(int x){    xx=0;    int i;    for(i=2;i*i<=x;i++)    {        if(x%i==0)        {            while(x%i==0)                x/=i;            mot[++xx]=i;        }    }    if(x>1)        mot[++xx]=x;}int main(){    int n,i,j;    int ans;    int tmp;    while(scanf("%d",&n)!=EOF)    {        ans=1;        memset(dp,0,sizeof(dp));        memset(mot,0,sizeof(mot));        for(i=1;i<=n;i++)        {            scanf("%d",&a[i]);            getmot(a[i]);            tmp=1;            if(a[i]==mot[1])            {                dp[mot[1]]=1;            }            else            {                for(j=1;j<=xx;j++)                {                    tmp=maxx(tmp,dp[mot[j]]+1);                }            }            for(j=1;j<=xx;j++)            {                dp[mot[j]]=maxx(tmp,dp[mot[j]]);            }            ans=maxx(ans,tmp);        }        printf("%d\n",ans);    }    return 0;}
        
       



Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.