码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1051 - Wooden Sticks

时间:2016-05-03 23:58:01      阅读:411      评论:0      收藏:0      [点我收藏+]

标签:

贪心吧

保证一维非递减的情况下,计算另一维上最少有几个非递减序列,就是答案

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstdio>
 4 using namespace std;
 5 int t,n;
 6 struct P{
 7     int l,w;
 8 }s[5005];
 9 bool cmp(P a,P b)
10 {
11     return a.l==b.l?a.w<b.w : a.l<b.l;
12 }
13 int ans[5005];
14 int main()
15 {
16     scanf("%d",&t);
17     while(t--)
18     {
19         scanf("%d",&n);
20         for(int i=0;i<n;i++) scanf("%d%d",&s[i].l,&s[i].w);
21         sort(s,s+n,cmp);
22         ans[0]=0;
23         int cnt=0;
24         for(int i=0;i<n;i++)
25         {
26             bool flag=0;
27             for(int j=0;j<cnt;j++)
28             {
29                 if(ans[j]<=s[i].w)
30                 {
31                     ans[j]=s[i].w;
32                     flag=1;
33                     break;
34                 }
35             }
36             if(!flag)
37             {
38                 ans[cnt++]=s[i].w;
39             }
40         }
41         cout<<cnt<<endl;
42     }
43 } 

 

HDU 1051 - Wooden Sticks

标签:

原文地址:http://www.cnblogs.com/nicetomeetu/p/5456869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!