hdu Wooden Sticks

这题是暴力加贪心,算是一道水题吧!只要把l和w从小到大排个序就行了。。。

#include"iostream"
#include"stdio.h"
#include"string.h"
#include"cmath"
#include"algorithm"
#include"queue"
#define mx 10005
using namespace std;
struct node
{
     int l,w;

};
bool cmp(const node a,const node b)
{
    if(a.l!=b.l) return a.l<b.l;
    else return a.w<b.w;
}
node sticks[mx],temp;
int visited[mx];

bool judge(node a,node b)
{
    if(a.l>=b.l&&a.w>=b.w) return true;
    return false;
}
int main()
{
    int t,n,i,j,minute;
    cin>>t;
    while(t--)
    {

        cin>>n;
        minute=0;
        for(i=0;i<n;i++)
        {
            cin>>sticks[i].l>>sticks[i].w;
        }

        sort(sticks,sticks+n,cmp);
        memset(visited,0,sizeof(visited));
        for(i=0;i<n;i++)
        {
            if(!visited[i]){visited[i]=1;minute++;}
            else continue;
            temp.l=sticks[i].l;temp.w=sticks[i].w;
            for(j=i+1;j<n;j++)
            {
                if(!visited[j]&&judge(sticks[j],temp))
                {
                    visited[j]=1;temp.l=sticks[j].l;temp.w=sticks[j].w;
                }
            }
        }
        cout<<minute<<endl;
    }
    return 0;
}
View Code

 

posted @ 2015-03-19 22:36  Run_For_Love  阅读(193)  评论(0编辑  收藏  举报