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

codevs 1689 搭建高塔

时间:2016-08-17 21:13:21      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

/*机智sort二维转一维*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 50010
using namespace std;
int n,s,num,c[maxn*6];
struct node
{
    int l,r;
}a[maxn*6];
int cmp(const node &x,const node &y)
{
    if(x.l==y.l)return x.r>y.r;
    return x.l<y.l;
}
int init()
{
    int x=0;char s=getchar();
    while(s<0||s>9)s=getchar();
    while(s>=0&&s<=9){x=x*10+s-0;s=getchar();}
    return x;
}
void LIS()
{
    for(int i=1;i<=num;i++)
      {
          int x=a[i].r;
          if(x>c[s])
            {
                c[++s]=x;continue;
          }
        int p=lower_bound(c+1,c+1+s,x)-c;
        c[p]=x;
      }
}
int main()
{
    n=init();
    int x,y,z;
    for(int i=1;i<=n;i++)
      {
          x=init();y=init();z=init();
          a[++num].l=x;a[num].r=y;
          a[++num].l=y;a[num].r=x;
          a[++num].l=x;a[num].r=z;
          a[++num].l=z;a[num].r=x;
          a[++num].l=y;a[num].r=z;
          a[++num].l=z;a[num].r=y;
      }
    sort(a+1,a+1+num,cmp);
    LIS();
    printf("%d\n",s);
    return 0;
}

 

codevs 1689 搭建高塔

标签:

原文地址:http://www.cnblogs.com/yanlifneg/p/5781726.html

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