Wooden Sticks HDU
来源:互联网 发布:金字塔期货交易软件 编辑:程序博客网 时间:2024/06/06 00:26
Wooden Sticks
HDU -1051There 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 ti
me 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 ti
me 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).
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
213
AC代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct note{ int u,v;}e[10000];int cmp(note A,note B){ if(A.u!=B.u)//在长度不等时,按长度从大到小排 return A.u>B.u; else return A.v>B.v;//长度相等时,按重量从大到小排}int n,sum,flag;int book[10000];int main(){ int T; scanf("%d",&T); while(T--) { int i,j; memset(book,0,sizeof(book)); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d%d",&e[i].u,&e[i].v); } sort(e,e+n,cmp); int s=0,minn; for(i=0;i<n;i++)//贪心,,按例子说:5.4.3.2.1排好后按重量排,能 { //从大到小排几组(重量),就是需要几分钟。 if(book[i]==0) { minn=e[i].v; } else continue; for(j=i+1;j<n;j++) { if(e[j].v<=minn&&book[j]==0) { book[j]=1; minn=e[j].v; } } s++; } printf("%d\n",s); }}
阅读全文
0 0
- hdu-1051 wooden sticks
- hdu 1051 Wooden Sticks
- HDU 1051 Wooden Sticks
- hdu 1051 Wooden Sticks
- HDU 1051 Wooden Sticks
- hdu 1051 Wooden Sticks
- hdu 1051 Wooden Sticks
- hdu 1051 Wooden Sticks
- hdu 1051 Wooden Sticks
- HDU Wooden Sticks
- hdu 1051 Wooden Sticks
- HDU 1051 Wooden Sticks
- hdu 1051 Wooden Sticks
- hdu 1051 Wooden Sticks
- hdu Wooden Sticks
- HDU 1051 Wooden Sticks
- hdu 1051 Wooden Sticks
- hdu 1051 Wooden Sticks
- js基础 事件基础一
- C++实现顺序表基本函数以及增删查改
- C# DataSet和DataTable详解(一)
- 购物车
- 权限,网络请求,判断,XlistVIew的依赖
- Wooden Sticks HDU
- mybatis常见问题处理:批量操作,传递多个参数,like语句写法等等
- 微信一次性订阅消息
- react-router HashRouter和BrowserRouter的使用
- Codeforces Round #412 (Div. 2)
- ios 图片由小到大和由大到小的渐进效果
- linux下安装squid
- Interesting Calculator UVA
- vim使用手册