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

HDU 1051

时间:2016-01-21 18:22:53      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

题意:给你n个木块的长和宽,现在要把它送去加工,这里怎么说呢,就是放一个木块花费一分钟,如果后面木块的长和宽大于等于前面木块的长和宽就不需要花费时间,否则时间+1,问把这个木块送去加工的最短时间。

思路:还是结构体排序,长相等就以宽来排序,如果一个木块被送去加工了标记它不存在就可以了;

 

 1 #include<iostream>
 2 #include<cmath>
 3 #include<algorithm>
 4 using namespace std;
 5 struct wood{
 6     int l,r;
 7     int vi;
 8 }p[5050];
 9 int cmp(wood a,wood b)
10 {    
11     if(a.l==b.l)
12         return a.r<b.r;
13     return  a.l < b.l;
14 }
15 int main()
16 {
17     int t; cin >> t;
18     while(t--){
19         int n;cin >> n;
20         for(int i=0;i<n;++i){
21             cin >> p[i].l >> p[i].r;
22             p[i].vi=1;
23         }
24         sort(p,p+n,cmp);        //如果满足 l<=l‘ and w<=w‘,则必然满足 l<=l‘,所以先以它的大小排个序 
25         int sum,count;
26         sum=count=0;
27         while(count<n){    //    然后反复找 
28             int kl=-1,kr=-1;
29             for(int i=0;i<n;++i){
30                 if(p[i].vi&&p[i].l>=kl&&p[i].r>=kr){
31                     p[i].vi=0;kl=p[i].l;kr=p[i].r;
32                     ++count;
33                 }
34             }
35             ++sum;
36         }
37         cout << sum << endl;
38     }
39     return 0;
40 }

 

HDU 1051

标签:

原文地址:http://www.cnblogs.com/sasuke-/p/5148472.html

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