zoukankan      html  css  js  c++  java
  • HOJ10814 Wooden Sticks[线性DP求最少不递增子序列+结构体排序]

    Wooden Sticks
    Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB
    Total submit users: 145, Accepted users: 127
    Problem 10814 : No special judgement
    Problem 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
    Problem Source
    Asia 2001, Taejon (South Korea)

    注意下当两棵树high相等的时候要对weight进行排序。

    code:

     1 #include <iostream>   
     2 #include <iomanip>   
     3 #include <fstream>   
     4 #include <sstream>   
     5 #include <algorithm>   
     6 #include <string>   
     7 #include <set>   
     8 #include <utility>   
     9 #include <queue>   
    10 #include <stack>   
    11 #include <list>   
    12 #include <vector>   
    13 #include <cstdio>   
    14 #include <cstdlib>   
    15 #include <cstring>   
    16 #include <cmath>   
    17 #include <ctime>   
    18 #include <ctype.h> 
    19 using namespace std;
    20 
    21 struct Tree
    22 {
    23     int high,weight;
    24 }tree[5005];
    25 
    26 int operator <(const Tree &a,const Tree &b)
    27 {
    28     if(a.high==b.high)
    29         return a.weight>b.weight;
    30     else
    31         return a.high>b.high;
    32 }
    33 
    34 int main()
    35 {
    36     int t;
    37     int i,j;
    38     int n;
    39     int max;
    40     int dp[5200];
    41     while(~scanf("%d",&t))
    42     {
    43         while(t--)
    44         {
    45             max=-1;
    46             scanf("%d",&n);
    47             for(i=0;i<n;i++)
    48                 scanf("%d%d",&tree[i].high,&tree[i].weight);
    49             sort(tree,tree+n);
    50             for(i=0;i<n;i++)
    51                 dp[i]=1;
    52             for(i=1;i<n;i++)
    53                 for(j=i-1;j>=0;j--)
    54                     if((tree[i].weight>tree[j].weight)&&dp[i]<dp[j]+1)
    55                         dp[i]=dp[j]+1;
    56             for(i=0;i<n;i++)
    57                 if(dp[i]>max)
    58                     max=dp[i];
    59             printf("%d\n",max);
    60         }
    61     }
    62     return 0;
    63 }
  • 相关阅读:
    PHP 扩展开发
    redis 简单动态字符串 SDS
    解决 call to undefined function mssql_connect 报错
    aws lnmp环境搭建 绑定域名
    PHP 内存管理 写时复制 垃圾回收
    CSS3详解:transform、transition
    详细图解window环境mongodb下载、安装、配置与使用
    介绍一款好用 mongodb 可视化工具
    安装MongoDB启动时报错‘发生系统错误2’的解决办法
    .md即markdown文件的基本常用编写语法
  • 原文地址:https://www.cnblogs.com/XBWer/p/2615154.html
Copyright © 2011-2022 走看看