• Wooden Sticks(hdu1051)


     

    Wooden Sticks

    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

    Submit Status Practice _

    Description

    There is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one by one fashion. It needs some time, called setup time, for the machine to prepare processing a stick. The setup times are associated with cleaning operations and changing tools and shapes in the machine. The setup times of the woodworking machine are given as follows: 

    (a) The setup time for the first wooden stick is 1 minute. 
    (b) Right after processing a stick of length l and weight w , the machine will need no setup time for a stick of length l' and weight w' if l<=l' and w<=w'. Otherwise, it will need 1 minute for setup. 

    You are to find the minimum setup time to process a given pile of n wooden sticks. For example, if you have five sticks whose pairs of length and weight are (4,9), (5,2), (2,1), (3,5), and (1,4), then the minimum setup time should be 2 minutes since there is a sequence of pairs (1,4), (3,5), (4,9), (2,1), (5,2). 

    Input

    The input consists of T test cases. The number of test cases (T) is given in the first line of the input file. Each test case consists of two lines: The first line has an integer n , 1<=n<=5000, that represents the number of wooden sticks in the test case, and the second line contains n 2 positive integers l1, w1, l2, w2, ..., ln, wn, each of magnitude at most 10000 , where li and wi are the length and weight of the i th wooden stick, respectively. The 2n integers are delimited by one or more spaces. 

    Output

    The output should contain the minimum setup time in minutes, one per line. 

    Sample Input

    3 
    5 
    4 9 5 2 2 1 3 5 1 4 
    3 
    2 2 1 1 2 2 
    3 
    1 3 2 2 3 1

    Sample Output

    2 1 3

    //第一行是代表测试数据t
    每组数据第一行是一个整数 n ,代表木头的数量
    然后 n 对数据 代表 木头的长度,和重量

    需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于

    第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间。

    问最短时间

    //贪心解决了

    排个序,就行

     1 #include <stdio.h>
     2 #include <iostream>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 struct Node
     7 {
     8     int l,w;
     9 }node[5005],setup[5005];
    10 
    11 bool cmp(Node a,Node b)
    12 {
    13     if (a.l==b.l)
    14         return a.w<b.w;
    15     return a.l<b.l;
    16 }
    17 
    18 int main()
    19 {
    20     int t;
    21     cin>>t;
    22     while (t--)
    23     {
    24         int n;
    25         int i,j;
    26         cin>>n;
    27         for (i=0;i<n;i++)
    28         {
    29             cin>>node[i].l>>node[i].w;
    30         }
    31         sort(node,node+n,cmp);
    32         int ans=1;
    33         setup[0].l=node[0].l;
    34         setup[0].w=node[0].w;
    35 
    36         for (i=1;i<n;i++)
    37         {
    38             int ok=0;
    39             for (j=0;j<ans;j++)
    40             {
    41                 if (setup[j].l<=node[i].l&&setup[j].w<=node[i].w)
    42                 {
    43                     setup[j].l=node[i].l;
    44                     setup[j].w=node[i].w;
    45                     ok=1;
    46                     break;
    47                 }
    48             }
    49             if (ok==0)
    50             {
    51                 setup[ans].l=node[i].l;
    52                 setup[ans].w=node[i].w;
    53                 ans++;
    54             }
    55         }
    56         cout<<ans<<endl;
    57     }
    58     return 0;
    59 }
    View Code

     

  • 相关阅读:
    清理disuz垃圾用户信息SQL语句
    解决C++代码单元测试中的难题不可验证和IO调用
    开源分布式平台mooon系统结构
    只显示指定网卡IP地址命令
    优秀开源杀毒软件ClamAV
    pyenv本地安装python
    TCP/IP学习笔记:ARP
    [linux] 如何在vim里面把空格缩进改为tab缩进
    TCP/IP学习笔记:ICMP
    TCP/IP学习笔记:UDP
  • 原文地址:https://www.cnblogs.com/haoabcd2010/p/5964893.html
Copyright © 2020-2023  润新知