博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1051 Wooden Sticks 【贪婪】
阅读量:5024 次
发布时间:2019-06-12

本文共 2759 字,大约阅读时间需要 9 分钟。

Wooden Sticks

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 11627    Accepted Submission(s): 4807
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
非常典型的贪心题。

题意:能够简化成给定n个物品,每一个物品有两项參数a,b。求这n个物品能组成的序列的最小个数使得每一个序列的每两项參数都是非减的。

题解:先依照递增的顺序给物品排序。然后从前往后推断每一个物品有多少个能与它组成合法序列,最后输出序列个数即是。

这题和南阳上那道矩形嵌套有些像,但矩形嵌套是求最长的序列,不能用贪心。得用DP。

#include 
#include
#include
#define maxn 5010struct Node { int x, y;} arr[maxn];bool vis[maxn];bool cmp(Node a, Node b) { return a.x < b.x;}int main() { int t, n, i, j, k, ans; scanf("%d", &t); while(t--) { scanf("%d", &n); for(i = 0; i < n; ++i) scanf("%d%d", &arr[i].x, &arr[i].y); std::sort(arr, arr + n, cmp); memset(vis, 0, sizeof(bool) * n); ans = 0; for(i = 0; i < n; ++i) { if(vis[i]) continue; ++ans; k = i; vis[i] = 1; for(j = i + 1; j < n; ++j) { if(vis[j]) continue; if(arr[j].x >= arr[k].x && arr[j].y >= arr[k].y) vis[k = j] = 1; } } printf("%d\n", ans); }}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/bhlsheji/p/4750740.html

你可能感兴趣的文章
【转】Apache Jmeter发送post请求
查看>>
Nginx 基本 安装..
查看>>
【凸优化】保留凸性的几个方式(交集、仿射变换、投影、线性分式变换)
查看>>
NYOJ-613//HDU-1176-免费馅饼,数字三角形的兄弟~~
查看>>
TFS --- GrantBackup Plan Permissions Error
查看>>
傅里叶级数与积分方程
查看>>
软工作业3:用户体验分析——以“南通大学教务管理系统微信公众号”为例
查看>>
Css:背景色透明,内容不透明之终极方法!兼容所有浏览器
查看>>
我们前端跟后端是怎么合作的
查看>>
mysql存储过程
查看>>
洛谷P2556 [AHOI2002] 黑白图像压缩 [模拟]
查看>>
letecode [136] - Single Number
查看>>
linux下设置固定IP的方法
查看>>
VMware虚拟机下Linux系统的全屏显示
查看>>
net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-2项目搭建
查看>>
高效的jQuery
查看>>
ubuntu 16.04 (软件应用)-输入法
查看>>
windos7修复引导扇区
查看>>
Leetcode总结之Backtracking
查看>>
Android开发学习之路-图片颜色获取器开发(1)
查看>>