hdu 1257

在一堆数里面把这些数分成降序的排列并使所分的组数最少!!

代码如下:

#include"stdio.h"

int min[100000];
int main( )
{
    int n,x,i,j,count;
    while(~scanf("%d",&n))
    {
        count=1;
        for(i=1;i<=n;i++)
        {
            scanf("%d",&x);
            for(j=0;j<count;j++)//个人觉得这里是最经典的地方,因为一石二鸟,既找出了离x最近的最小的数又。。。。
                if(x<min[j])
                {min[j]=x;break;}
            if(j==count)
                min[count++]=x;
        }
        printf("%d\n",count-1);
    }
    return 0;
}

 

posted @ 2012-05-17 00:27  朝圣の路  阅读(222)  评论(0编辑  收藏  举报