HDU1051 贪心+排序
来源:互联网 发布:网络歌曲视频下载 编辑:程序博客网 时间:2024/05/16 06:09
Wooden Sticks
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 17345 Accepted Submission(s): 7065
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).
(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
213
先排个序,然后从头开始找符合条件的木头,当找不到了的时候就再回头去找,发现的第一个没被用过的木头就是第二段的开头。
#include<iostream>#include<algorithm>#define N 5050using namespace std;struct wo{int l, w;}t[N];int cmp(wo a, wo b){if (a.l == b.l){return a.w < b.w;}elsereturn a.l < b.l;}int main(){int n, m;scanf("%d", &n);while (n--){scanf("%d", &m);int i, j, k;for (i = 1; i <= m; i++){scanf("%d%d", &t[i].l, &t[i].w);}sort(t, t + m+1, cmp);int flag[N];memset(flag, 0, sizeof(flag));int time = 0;for (i = 1; i <= m;i++){if (flag[i] == 0){time++;k = i;flag[i] = 1;for (j = i+1; j <= m;j++ ){if (t[j].l >= t[k].l&&t[j].w >= t[k].w&&flag[j]== 0){flag[j] = 1;k = j;}}}}printf("%d\n", time);}return 0;}
0 0
- HDU1051 贪心+排序
- hdu1051贪心
- HDU1051(贪心)
- hdu1051(贪心)
- hdu1051(贪心)
- hdu1051贪心
- hdu1051(Wooden Sticks 贪心)
- hdu1051 Wooden Sticks (贪心)
- HDU1051 Wooden Sticks 贪心
- hdu1051 Wooden Sticks贪心
- HDU1051 Wooden Sticks 【贪心】
- HDU1051 Wooden Sticks 贪心
- HDU1051 Wooden Sticks【贪心】
- hdu1051(贪心)
- hdu1051(贪心)
- Wooden Sticks hdu1051 贪心算法
- HDU1051 WoodenStricks (贪心+DP)
- HDU1051 Wooden Sticks(贪心)
- ISLR第三章线性回归应用练习题答案(下)
- 【VS开发】CTimeSpan类
- 入门新手如何系统地学习数据挖掘?
- JAVA+CKEditor+CKFinder 配置异常解决方案
- 用view绘制六边形能力值自定义控件
- HDU1051 贪心+排序
- Leetcode - 5. Longest Palindromic Substring
- 深度学习之二:CNN推导
- 做最好的自己
- 企业支付宝账号开发接口教程--JAVA-UTF-8
- 【VS开发】CTime和CTimeSpan使用
- 强制让PowerShell生成终止性错误
- 【HDU 2089】不要62(数位dp)
- 读完这100篇论文 就能成大数据高手