题目链接:

http://codevs.cn/problem/4888/

https://www.luogu.org/problem/show?pid=2093

题目描述

某工厂生产一批棍状零件,每个零件都有一定的长度(Li)和重量(Wi)。现在为了加工需要,要将它们分成若干组,使每一组的零件都能排成一个长度和重量都不下降(若i<j,则Li<=Lj,Wi<=Wj)的序列。请问至少要分成几组?

输入输出格式

输入格式:

第一行为一个整数N(N<=1000),表示零件的个数。第二行有N对正整数,每对正整数表示这些零件的长度和重量,长度和重量均不超过10000。

输出格式:

仅一行,即最少分成的组数。

输入输出样例

输入样例#1:

5
8 4 3 8 2 3 9 7 3 5
输出样例#1:

2

分析:

可以考虑先按长度从小到大排序,长度相等者按重量从小到大排序。

然后第一个零件单独一个组。

从第二个零件开始处理所有零件的分组:

若是第i个零件的重量比某个已经存在的组(假设为第j组)的最大重量还要大,则第i个零件可以归入第j组。

假如第i个零件无法归入任何一个组,则第i个零件单独形成一个新的组(第k组)。

有可能第i个零件可以归入多个组(假设为j1、j2、j3、……、jn),从最优的角度来考虑,应该选择组内最重零件较大的那一个组。

 #include<iostream>
 #include<cstdio>
 using namespace std;
 ],b[];

 void qsort(int l,int r)
 {
     int i,j,mid,p;
     i=l; j=r;
     mid=a[(l+r)/];
     while (i<=j)
     {
         while (a[i]<mid) i++;
         while (a[j]>mid) j--;
         if (i<=j)
         {
             p=a[i]; a[i]=a[j]; a[j]=p;
             p=b[i]; b[i]=b[j]; b[j]=p;
             i++; j--;
             }
         }
     if (l<j) qsort(l,j);
     if (i<r) qsort(i,r);
 } 

 int main()
 {
     freopen( "stick.in" , "r" ,stdin);
     freopen( "stick.out" , "w" ,stdout);
     ];
     cin>>n;
     ;i<=n;i++)
     {
       cin>>a[i]>>b[i];
       a[i]=a[i]*+b[i];
     }
     qsort(,n);
     k=;
     c[]=b[];
     ;i<=n;i++)
     {
         x=;
         ;j<=k;j++)
         if (c[j]<=b[i])
         {
             ) x=j;
             else
             if (c[j]>c[x]) x=j;
             }
         ) c[++k]=b[i];
         else c[x]=b[i];
         }
     cout<<k<<endl;
     ;
 }

P2093 零件分组【贪心算法练习题】的更多相关文章

  1. 洛谷——P2093 零件分组

    https://www.luogu.org/problem/show?pid=2093 题目描述 某工厂生产一批棍状零件,每个零件都有一定的长度(Li)和重量(Wi).现在为了加工需要,要将它们分成若 ...

  2. 拦截导弹类问题 (Codevs4888零件分组POJ1065Wooden Sticks)(LIS及其覆盖问题)

    拦截导弹 题意:求最长不上升子序列长度:求一个序列最少分成几个非增子序. 第一问易求,已知序列a,令f[i]为a前i个元素的最长非增子序的长度,则有 f[i]=max{f[i],f[j]+1} (1& ...

  3. 贪心算法(Greedy Algorithm)

    参考: 五大常用算法之三:贪心算法 算法系列:贪心算法 贪心算法详解 从零开始学贪心算法 一.基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以 ...

  4. 算法导论----贪心算法,删除k个数,使剩下的数字最小

    先贴问题: 1个n位正整数a,删去其中的k位,得到一个新的正整数b,设计一个贪心算法,对给定的a和k得到最小的b: 一.我的想法:先看例子:a=5476579228:去掉4位,则位数n=10,k=4, ...

  5. 零件分组_DP

    问题 C: 零件分组 时间限制: 1 Sec  内存限制: 64 MB提交: 31  解决: 14[提交][状态][讨论版] 题目描述 某工厂生产一批棍状零件,每个零件都有一定的长度(Li)和重量(W ...

  6. LEETCODE —— Best Time to Buy and Sell Stock II [贪心算法]

    Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price of a ...

  7. ACM_ICPC hdu-2111(简单贪心算法)

    一道非常简单的贪心算法,但是要注意输入的价值是单位体积的价值,并不是这个物品的总价值!#include <iostream> #include <stdio.h> #inclu ...

  8. 基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题

    1)区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖 样例: 区间长度8,可选的覆盖线段[2,6],[1, ...

  9. 增强学习贪心算法与Softmax算法

    (一) 这个算法是基于一个概率来对探索和利用进行折中:每次尝试时,以概率进行探索,即以均匀概率随机选取一个摇臂,以的概率进行利用,即以这个概率选择当前平均奖赏最高的摇臂(如有多个,则随机选取). 其中 ...

随机推荐

  1. Android 应用程序之间内容分享详解(二)

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9428613 Android 应用程序之间内容分享详解(一) 之前给大家分享了你开发的应 ...

  2. 备份VMware虚拟磁盘文件 移植到其他虚拟机

    原文:http://jingyan.baidu.com/article/a681b0de17b3173b1843468f.html 方法/步骤     第一种方法:直接复制本地主机磁盘下的虚拟磁盘文件 ...

  3. OpenFeign封装为springboot starter

    OpenFeign是什么 随着业务的增多,我们的单体应用越来越复杂,单机已经难以满足性能的需求,这时候出现了分布式.分布式通讯除了RPC, REST HTTP请求是最简单的一种方式.OpenFeign ...

  4. 【ElasticSearch】ElasticSearch-索引优化-自定义索引

    ElasticSearch-索引优化-自定义索引 es 指定 索引 字段_百度搜索 [es]创建索引和映射 - 匡子语 - 博客园 reindex,增加字段,并新增数据 - Elastic中文社区 e ...

  5. 一文学会用 Tensorflow 搭建神经网络

    http://www.jianshu.com/p/e112012a4b2d 本文是学习这个视频课程系列的笔记,课程链接是 youtube 上的,讲的很好,浅显易懂,入门首选, 而且在github有代码 ...

  6. PHP使用DOM XML操作XML[总结]

    1.前言 XML树状层次结构鲜明,非常适合作为配置文件.PHP中可以使用DOM XML来操作XML.本文总结一下PHP使用DOM XML创建.添加节点.查询XML文件. 2.使用DOM XML XML ...

  7. 简单介绍Ceph分布式存储集群

    在规划Ceph分布式存储集群环境的时候,对硬件的选择很重要,这关乎整个Ceph集群的性能,下面梳理到一些硬件的选择标准,可供参考: 1)CPU选择 Ceph metadata server会动态的重新 ...

  8. (转)Unity Assets目录下的特殊文件夹名称(作用和是否会被打包到build中)

    原文:http://wiki.unity3d.com/index.php/Special_Folder_Names_in_your_Assets_Folder 1.隐藏文件夹以.开头的文件夹会被Uni ...

  9. vSCode打开文件老覆盖原窗口

    https://segmentfault.com/q/1010000006131199?_ea=1023522 设置中搜preview,改为false

  10. Jquery中"$(document).ready(function(){ })"函数的使用详解

    Jquery是优秀的Javascrīpt框架,$是jquery库的申明,它很不稳定(我就常遇上),换一种稳定的写法jQuery.noConflict(); jQuery(document).ready ...