首页 > 其他 > 详细

codevs 4909 寂寞的堆(写的好丑0.0)

时间:2016-05-10 23:30:02      阅读:177      评论:0      收藏:0      [点我收藏+]
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define ll long long
using namespace std;
ll n,num,ans,hou[10000000],f[10000000],c[10000000],size;
struct node
{
    ll l,r,data;
}t[10000000];
void Hou(ll p)
{
    if(p)
      {
          Hou(t[p].l);
          Hou(t[p].r);
          if(t[p].data)
            hou[++num]=t[p].data;
      }
}
ll lon()
{
    ll i,x;
    for(i=1;i<=num;i++)
      {
          x=hou[i];
          if(x>c[size])
            {
                c[++size]=x;
                continue;
          }
        int mm,l=0,r=size,ans;
        while(l<=r)
          {
              mm=(l+r)/2;
              if(x>c[mm])
                {
                    ans=mm;
                    l=mm+1;
              }
            else r=mm-1;
          }
        c[ans+1]=x;
      }
    return size;
}
int main()
{
    scanf("%lld",&n);
    ll x;
    for(ll i=1;i<=n;i++)
      {
          ll sum=1;
        while(~scanf("%lld",&x))
            {
              ++num;
              sum++;
              t[num].data=x;
              t[num].l=num*2;
              t[num].r=num*2+1;
              if(sum>pow(2,i-1))break;
          }
      } 
    num=0;
    Hou(1);
    ans=lon();
    printf("%lld\n",num-ans);
    return 0;
}

 

codevs 4909 寂寞的堆(写的好丑0.0)

原文:http://www.cnblogs.com/yanlifneg/p/5479697.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!