zoj 1029

/*
zoj_1029    贪心
贪心的典型题(会议安排的变形)

注意:起点可能比终点大
*/
#include <iostream>
#include <algorithm>
#include <string.h>
#include <cstdio>
using namespace std;
struct room
{
    int sta,end;
}r[410];
bool flag[410];

int change( int num )
{
    if( num%2==0 )  return num/2;
    else return num/2+1;
}

bool cmp( room a,room b )
{
    return a.sta<b.sta;
}

int main()
{
    int T,i,j,n,last,temp;
    bool in;
    scanf( "%d",&T );
    while( T-- )
    {
        memset( flag,0,sizeof(flag) );
        scanf( "%d",&n );
        for( i=0;i<n;i++ )
        {
            scanf( "%d%d",&r[i].sta,&r[i].end );
            r[i].sta=change( r[i].sta );
            r[i].end=change( r[i].end );
            if( r[i].sta>r[i].end )
            {
                temp=r[i].sta;
                r[i].sta=r[i].end;
                r[i].end=temp;
            }
        }
        sort( r,r+n,cmp );
        j=0;
        while( 1 )
        {
            last=-1;
            in=false;
            for( i=0;i<n;i++ )
            {
                if( !flag[i] && r[i].sta>last )
                {
                    flag[i]=1;
                    last=r[i].end;
                    in=true;
                }
            }
            if( !in )   break;
            j++;
        }
        printf( "%d\n",j*10 );
    }
    return 0;
}

阅读更多
文章标签: ini
个人分类: ZOJ 贪心
上一篇zoj 1037
下一篇zoj 3033
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭