zoukankan      html  css  js  c++  java
  • ACM 心急的C小加

    心急的C小加

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:4
     
    描述

    C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间。因为急着去约会,C小加想在最短的时间内把木棒处理完,你能告诉他应该怎样做吗?

     
    输入
    第一行是一个整数T(1<T<1500),表示输入数据一共有T组。
    每组测试数据的第一行是一个整数N(1<=N<=5000),表示有N个木棒。接下来的一行分别输入N个木棒的L,W(0 < L ,W <= 10000),用一个空格隔开,分别表示木棒的长度和质量。
    输出
    处理这些木棒的最短时间。
    样例输入
    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 
    
    样例输出
    2
    1
    3
    贪心问题+最长递增子序列问题
    将输入的数据按照长度进行排序,然后根据重量选择递增的最长子序列,不同的子序列之间耗费一个单位的时间
    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <utility>
    using namespace std;
    struct Stick{
        int l,w;
        Stick(int ll = 0 , int ww = 0):l(ll), w(ww){}
        bool operator<(const Stick& a) const{
            if(l!=a.l) return l < a.l;
            else return w < a.w;
        }
    };
    int main(){
        int T;
        cin >> T;
        for(int icase = 0; icase < T; icase++){
            int n;
            cin >> n;
            vector<Stick> stick(n);
            for(int i = 0 ; i < n; ++ i)
                cin >>  stick[i].l >> stick[i].w;
            sort(stick.begin(),stick.end());
            int cnt = 0;
            for(int i = 0 ; i < n; ++ i){
                if(stick[i].w){
                    cnt++;
                    int minWeight = stick[i].w;
                    stick[i].w = 0;
                    for(int j = i+1; j < n; ++ j){
                        if(stick[j].w >= minWeight){
                            minWeight =stick[j].w;
                            stick[j].w = 0;
                        }
                    }
                }
            }
            cout<<cnt<<endl;
        }
    }
    
    
    
     
  • 相关阅读:
    [OpenGL ES 071]光照原理
    [OpenGL ES 03]3D变换:模型,视图,投影与Viewport
    [日志]当今最流行的网络生僻字,很火
    [日志]关于茶的基础知识
    [健康]快速除牙痛的八个小验方
    [日志]我们生活中的潜规则
    [日志]做事要方,做人要圆
    [日志]家居装修花钱看你怎么省
    [日志]非常宝贵的工作经验
    [日志]你用的着的一些家装尺寸数据
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3664337.html
Copyright © 2011-2022 走看看