Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

贴代码~~~765MS

Posted by chinaccshd96 at 2010-07-20 21:42:08 on Problem 3636
#include<iostream>   
#include<algorithm>   
using namespace std;   
  struct Dolls   
{   
    int w;   
    int h;   
};  
int cmp(const Dolls &a, const Dolls &b)   
{   
    if(a.w == b.w)   
        return a.h > b.h;   
    else  
        return a.w < b.w;   
}  
int main()   
{   
    int T;   
    const int SIZE = 20001;   
    Dolls st[SIZE];   
    int b[SIZE];   
    cin >> T;   
    while(T--)   
    {   
        int n;   
        cin >> n;   
        for(int i = 0; i != n; ++i)   
            cin >> st[i].w >> st[i].h; 
        sort(st, st + n, cmp);   
        int len = 1;   
        b[1] = st[0].h;   
        int left, right, mid;   
        for(int i = 1; i != n; ++i)   
        {   
            left = 1;   
            right = len;   
            while(left <= right)   
            {   
                mid = (left + right) >> 1;   
                if(st[i].h <= b[mid])   
                    left = mid + 1;   
                else  
                    right = mid - 1;   
            }   
            b[left] = st[i].h;   
            if(left > len)   
                ++len;   
        }   
        cout << len << endl;   
    }  
    return 0;   
}  

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator