HUD1051 解题报告
来源:互联网 发布:最低价网淘宝 编辑:程序博客网 时间:2024/06/11 04:15
Wooden Sticks
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22263 Accepted Submission(s): 8959
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
Source
Asia 2001, Taejon (South Korea)
Recommend
We have carefully selected several similar problems for you: 1050 2037 1052 1045 1053
解法:贪心
将所有的木棒按照长短排列,长的在前,如果长度相同,则重的在前面,然后从第一根开始取
接下来的一根的长度和质量都不能超过前面的那一根,一直取到没有满足条件的木棒为止
然后从第一根没有取过的木棒开始,依次从没有取过的木棒中挑选符合要求的
#include<iostream>#include<algorithm>using namespace std;struct wood{ int l; int w; bool used;};const int maxn=5000+50;const int maxlw=10000;wood woods[maxn];int n;bool cmp(const wood &w1,const wood &w2);void solve();int main(){ int t; cin>>t; for(int j=0;j<t;j++) { cin>>n; for(int i=0;i<n;i++) { cin>>woods[i].l>>woods[i].w; woods[i].used=false; } solve(); }}bool cmp(const wood &w1,const wood &w2){ if(w1.l!=w2.l) return w1.l>w2.l; return w1.w>w2.w;}void solve(){ sort(woods,woods+n,cmp); int ans=0; int res=n; //剩下的数目 int save_fi=-1; while(res) { ans++; int fi; for(fi=save_fi+1;fi<n;fi++) //找到第一个没有用过的棒子 if(!woods[fi].used) break; woods[fi].used=true; save_fi=fi; res--; wood cmpwood=woods[fi]; for(int i=fi+1;i<n;i++) { if(!woods[i].used&&woods[i].w<=cmpwood.w) { woods[i].used=true; cmpwood=woods[i]; res--; } } } cout<<ans<<endl;}
阅读全文
0 0
- HUD1051 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- Antiprime解题报告
- expr解题报告
- 华容道解题报告
- tju解题报告
- zju1062/pku1095解题报告
- UsacoGate解题报告 --- 序曲
- ZJU 2060 解题报告
- ZJU 1331 解题报告
- ZJU 1115 解题报告
- ZJU1057解题报告
- 爬虫之旅(三)
- java.lang.Exception: No runnable methods
- matlab之load导入mat的struct问题
- 重新学习数据库知识点1
- mapnik的TextSymbolizer类属性说明及使用预研情况
- HUD1051 解题报告
- 使用jenkins进行持续集成
- Java面试题集(1-50)
- Object.keys用法总结
- 二进制1的个数
- OCR / Vote disk Maintenance Operations: (ADD/ REMOVE/REPLACE/MOVE)
- jsp里的参数如何与javabean里的参数对应
- rocketmq
- 第4章 虚拟机性能监控与故障处理工具