nyoj236 心急的C小加

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 struct node{
 5     int l,w;
 6 }stick[5001];
 7 bool cmp(node a,node b)
 8 {
 9     if(a.l!=b.l) return b.l>a.l;
10     return b.w>a.w;
11 }
12 int main()
13 {
14     int i,j,n,cnt,T;
15     cin>>T;
16     while(T--)
17     {
18         for(cin>>n,i=0;i<n;++i)
19             cin>>stick[i].l>>stick[i].w;
20         sort(stick,stick+n,cmp);//l,w都按从小到大排序,l优先 
21         for(cnt=i=0;i<n;++i)
22             if(stick[i].w){
23                 cnt++;
24                 for(j=i+1;j<n;++j)
25                     if(stick[j].w>=stick[i].w){
26                         stick[i].w=stick[j].w;//刚开始这里忘了更新stick[i].w的值,贡献了几个WA 
27                         stick[j].w=0;//置零,避免下次重复且会出错的判断 
28                     }
29             }
30         cout<<cnt<<endl;
31     }
32     return 0;
33 }

//据说是贪心

posted on 2012-08-15 12:42  小花熊  阅读(301)  评论(0编辑  收藏  举报

导航