poj 1065 Wooden Sticks
2011-07-17 23:43
211 查看
#include <iostream> using namespace std; struct wood { int w; int l; }Wood[5000]; int cmp(const void *a,const void *b) { if((*(wood*)a).l==(*(wood*)b).l) //不能写成(wood*)a->l,要写成(*(wood*)a).l return (*(wood*)a).w-(*(wood*)b).w; return (*(wood*)a).l-(*(wood*)b).l; } //按木棍的长度从小到大排序,当木棍长度相等时,按重量小到大排序。这样每次选择都是对后面影响最小的 //对选过的木棍进行标记。一轮之后,setup time+1,再对剩下的木棍进行选择,即可得到最优解。 int machine(int n) { int sum=0; for(int i=0;i<n;i++) if(Wood[i].w!=-1) { sum++; int tmp=Wood[i].w; for(int j=i+1;j<n;j++) if(tmp<=Wood[j].w) { tmp=Wood[j].w; Wood[j].w=-1; //对选过的木棍进行标记。 } } return sum; } int main() { int t,n; cin>>t; while(t--) { cin>>n; for(int i=0;i<n;i++) cin>>Wood[i].w>>Wood[i].l; qsort(Wood,n,sizeof(Wood[0]),cmp); cout<<machine(n)<<endl; } return 0; }
相关文章推荐
- POJ 1065:Wooden Sticks
- hdu 1051 && poj 1065 Wooden Sticks(贪心+动态规划——单调递增子序列)
- poj 1065 Wooden Sticks
- POJ 1065 && HDU 1051 Wooden Sticks 贪心
- poj 1065 Wooden Sticks (贪心)
- POJ1065——Wooden Sticks(动态规划,二分优化)
- POJ 1065 Wooden Sticks (贪心)
- POJ 1065 Wooden Sticks 最长上升子序列
- POJ 1065 Wooden Sticks【贪心】
- POJ-1065-Wooden Sticks-贪心-多关键字排序
- poj 1065 Wooden Sticks
- POJ 1065 Wooden Sticks 笔记
- POJ 1065 Wooden Sticks 已被翻译
- POJ1065 Wooden Sticks
- poj 1065 Wooden Sticks 贪心
- POJ 1065 Wooden Sticks / hdu 1257 最少拦截系统 DP 贪心
- POJ 1065 && HDU 1051 Wooden Sticks(贪心)
- POJ1065——Wooden Sticks(贪心)
- POJ 1065 Wooden Sticks 最长不上升子集 偏序定理
- POJ 1065 Wooden Sticks