zoukankan      html  css  js  c++  java
  • nyist -16


    #include <iostream>
    #include<cstring>
    using namespace std;
    struct node
    {
        int l,w;
    }dp[1005];
    int g[1005][1005];
    int d[1005];
    int n,max_v;
    int f(int i)
    {
        if (d[i]>0) return d[i];
        d[i]=1;
        for (int j=0;j<n;j++)
        {
            if (g[i][j])
                d[i]=max(d[i],f(j)+1);
        }
        max_v=max(max_v,d[i]);
        return d[i];
    }
    int main()
    {
      
        int N;
        cin>>N;
        while (N--)
        {
            cin>>n;
            int x,y;
             memset(g,0,sizeof(g));
            for (int i=0;i<n;i++)
            {
                cin>>x>>y;
                dp[i].l=max(x,y);
                dp[i].w=min(x,y);
            }
            for (int i=0;i<n;i++)
            {
                for (int j=i+1;j<n;j++)
                {
                    if (dp[i].l>dp[j].l && dp[i].w>dp[j].w)          g[j][i]=1;


                    else if ( dp[i].l<dp[j].l && dp[i].w<dp[j].w )      g[i][j]=1;

                    else g[j][i]=g[i][j]=0;
                }
                d[i]=0;
            }
            max_v=0;
            for (int i=0;i<n;i++)
                f(i);
            cout<<max_v<<endl;
        }
        return 0;
    }

    #include <iostream>

    using namespace std;


    struct node
    {
        int l,w;
    }dp[1005];


    int g[1005][1005];
    int d[1005];
    int k,max_v;
    int f(int i)
    {
        if (d[i]>0) return d[i];
        d[i]=1;
        for (int j=0;j<k;j++)
        {
            if (g[i][j])
                d[i]=max(d[i],f(j)+1);
        }
        max_v=max(max_v,d[i]);
        return d[i];
    }
    int main()
    {
        int n;
        cin>>n;
        while (n--)
        {
            cin>>k;
            int x,y;
            for (int i=0;i<k;i++)
            {
                cin>>x>>y;
                dp[i].l=max(x,y);
                dp[i].w=min(x,y);
            }


            for (int i=0;i<k;i++)
            {
                for (int j=i+1;  j<k;  j++)
                {
                    if (dp[i].l>dp[j].l && dp[i].w>dp[j].w)
                    {
                        g[j][i]=1;
                        g[i][j]=0;
                    }
                    else if (dp[i].l<dp[j].l && dp[i].w<dp[j].w)
                    {
                        g[j][i]=0;
                        g[i][j]=1;
                    }
                    else g[j][i]=g[i][j]=0;
                }
                d[i]=0;
            }
            max_v=0;
            for (int i=0;i<k;i++)
                f(i);
            cout<<max_v<<endl;
        }
        return 0;
    }
           

  • 相关阅读:
    Message高级特性 & 内嵌Jetty实现文件服务器
    springboot中使用kindeditor富文本编辑器实现博客功能&vue-elementui使用vue-kindeditor
    Embarcadero RAD Studio XE5
    经典营销故事
    百度竞价教程 借助百度热力图让你的效果翻10倍
    无本借力:他是如何实现年收入70万?
    不用软件快速拥有几百个QQ群并都是管理员
    质保、保修、包修:含义不同
    域名反向解析在自建邮件群发服务器中的应用
    2014年1月1日,马年
  • 原文地址:https://www.cnblogs.com/2014acm/p/3914393.html
Copyright © 2011-2022 走看看