zoukankan      html  css  js  c++  java
  • poj1065

    题目大意:
    木棍(好吧,承认确实做过这个题,嘎嘎)
    有一堆木棍大约有n根,木棍的长度和重量都预先知道,这些木棍会在一个木工机械上一个接一个的处理,这需要一些时间,称为设置时间,为机械准备处理一根木头,这个设置时间跟清洁还有机械的工具和形状的改变有关系,木工机床安装时间如下:
    (a)第一根木棍的设置时间是1 minute.
    (b)正确加工处理一个长l重w的木棍后,如果下一根木头的长 l <= l' and w <= w'则不需要花费时间,否则将要花费1minute的设置时间。你需要找出来最小的花费时间。

    解析,好吧这个实在是没有什么创意啊,直接K掉吧


    AC
    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    #define maxn 5005
    #define INF 0xffffff

    struct stick
    {
        int l, w;
    }a[maxn], b[maxn];

    bool cmp(stick n1, stick n2)
    {
        if(n1.w != n2.w)return n1.w < n2.w;
        return n1.l < n2.l;
    }
    int Find(int n, stick p)
    {
        int i, k=-1, MinLen=INF;
        for(i=0; i<n; i++)
        {
            if(p.l >= b[i].l && MinLen > p.l-b[i].l)
                k=i, MinLen = p.l-b[i].l;
        }
        return k;
    }
    int main()
    {
        int T;
        scanf("%d",&T);
        while(T--)
        {
            int i, n, k=0;
            scanf("%d",&n);
            for(i=0; i<n; i++)
                scanf("%d%d",&a[i].l,&a[i].w);

            sort(a, a+n, cmp);

            for(i=0; i<n; i++)
            {
                int ans =Find(k, a[i]);
                if(ans ==-1)
                    ans = k++;
                b[ans]= a[i];
            }
            printf("%d ", k);
        }
        return 0;

    } 

  • 相关阅读:
    核主成分分析方法(KPCA)怎么理解?
    通过主成分分析方法进行降维
    线性回归分析中的假设检验
    机器学习中的逻辑回归方法
    关联分析中寻找频繁项集的FP-growth方法
    机器学习中的模型选择和特征选择的基本方法
    计算学习理论中泛化误差的研究
    《幸福的陷阱》读书笔记
    人生规划的逆向思维
    为什么相敬如宾是对的?
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4384007.html
Copyright © 2011-2022 走看看