zoukankan      html  css  js  c++  java
  • ZOJ Problem Set

    ZOJ Problem Set - 1025
    Wooden Sticks

    Time Limit: 2 Seconds                                     Memory Limit: 65536 KB                            

    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


      Output for the Sample Input

    2
      1
      3

    多少个递增子序列就多少分钟

    AC代码:

    #include<iostream>
    #include<stdio.h>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    struct Wood{
    	int w,l;
    };
    bool cmp(Wood a,Wood b)
    {
    	if(a.w!=b.w)
    	{
    		return a.w<=b.w;
    	}
    	else
    	{
    		return a.l<=b.l;
    	}
    }
    int main()
    {
    	int cas;
    	cin>>cas; 
    	while(cas--)
    	{
    		int n;
    		Wood wood[10001];
    		cin>>n;
    		for(int i=0;i<n;i++)
    		{
    			cin>>wood[i].l>>wood[i].w;
    		}
    		sort(wood,wood+n,cmp);
    		int minuts=0;
    		bool *flag=new bool[n];
    		memset(flag,0,sizeof(flag));
    		for(int i=0;i<n;i++)
    		{
    			if(flag[i])continue;
    			flag[i]=true;
    			minuts++;
    			int t=i;
    			for(int j=i+1;j<n;j++)
    			{
    				if(wood[t].w<=wood[j].w&&wood[t].l<=wood[j].l&&!flag[j])
    				{
    					t=j;
    					flag[j]=true;
    				}
    			}
    		}
    		cout<<minuts<<endl;
    	} 
    } 


     

  • 相关阅读:
    linux安装篇之mongodb安装及服务自启动配置
    Linux下启动mongodb
    java 实现 图片与byte 数组互相转换
    用java imageio调整图片DPI,例如从96调整为300
    StringRedisTemplate操作redis数据
    Docker 更换国内的Hub源
    2、Docker 基础安装和基础使用 一
    Centos 6.x Openssh 升级 7.7p1 版本
    1、Docker 简介
    2. Python环境安装
  • 原文地址:https://www.cnblogs.com/jackwuyongxing/p/3366505.html
Copyright © 2011-2022 走看看