poj1065 Wooden Sticks
来源:互联网 发布:plc手持编程器 编辑:程序博客网 时间:2024/05/03 00:15
链接:http://poj.org/problem?id=1065
第一根木材被处理时,时间必定为1minute。此后被处理的木材如果长度和重量都大于前一根木材则无需消耗时间,否则要消耗时间1minute。
采取贪心策略,对木材的长度进行排序(当然也可以对其重量进行排序),关键一点,当长度相等时,则应该再对重量进行排序。
#include<iostream>#include<algorithm>#include<cstring>#define MAXN 5005using namespace std;struct Stick //Stick结构体,存储木棒的长度和重量{ int l,w;};Stick st[MAXN];bool vist[MAXN]; //若木棒已被处理,则木棒被访问int cmp(Stick a,Stick b){if(a.l==b.l)return a.w-b.w<0;//当木棒长度相等时,再比较它的重量else return a.l-b.l<0;//若木棒长度不等,则直接比较其长度}int main(){int t,n,num,times;//times记录消耗时间int rel,rew; //用于记录前一根木棒的长度和重量int i,j,k;cin>>t;for(i=0;i<t;i++){ cin>>n; for(j=0;j<n;j++)cin>>st[j].l>>st[j].w; sort(st,st+n,cmp); memset(vist,false,sizeof(vist)); times=0; num=n-1; //因为第一根被默认处理,所以num等于n-1 rel=st[0].l; //第一根木棒为前一根木棒 rew=st[0].w; vist[0]=true; //这个条件加不加无所谓 while(num) { for(j=1;j<n;j++) //for循环依次寻找满足条件的木棒if(st[j].l>=rel&&st[j].w>=rew&&!vist[j])//如果木棒长度重量长度都大于前一根木棒且未被处理 //符合条件,木棒被处理{ vist[j]=true; //木棒被访问 num--; //木棒总数减一 rel=st[j].l; //当前木棒变成前一根木棒 rew=st[j].w;} times++; //无满足条件的木棒时,跳出,时间+1 int flag=false; for(k=1;k<n;k++) {if(!vist[k]){ rel=st[k].l; rew=st[k].w; flag=true; //还有没被访问的木棒,则要继续处理 //且第一根被选出的没有访问的木棒要作为前一根木棒被处理}if(flag)break; } } cout<<times<<endl;}return 0;}
0 0
- poj1065 Wooden Sticks
- poj1065 Wooden Sticks
- poj1065 Wooden Sticks 贪心
- POJ1065 Wooden Sticks
- poj1065 Wooden Sticks
- poj1065 Wooden Sticks
- poj1065 wooden sticks
- POJ1065---Wooden Sticks
- poj1065 Wooden Sticks
- poj1065 wooden sticks
- POJ1065 Wooden Sticks(Greedy)
- POJ1065-Wooden Sticks
- POJ1065 Wooden Sticks
- POJ1065 &HDOJ1051 &AOJ224 Wooden Sticks
- POJ1065 - Wooden Sticks - 贪心算法
- POJ1065 Wooden Sticks(贪心||DP)
- 数据结构set:POJ1065--Wooden Sticks
- poj1065 Wooden Sticks 贪心,提供测试数据
- Lucene搜索方法总结
- C++关键字static
- AOJ-AHU-OJ-460 Prime Ring Problem(栈)
- NGINX 添加MP4、FLV视频支持模块
- 四叉树与八叉树
- poj1065 Wooden Sticks
- 【结构体数组】项目二。有序的结构体数组
- JS 中如何判断 undefined
- uva 10025 - The 1 2 ... n = k problem
- extjs 布局
- 使用easyui的form submit的问题
- 南阳274 最小公倍数
- 田北俊指出,同样是国际旅游城市,巴黎、伦敦、东京从来没有说过
- CareerCup Cryptarithmetic Puzzle DFS