HDOJ:1051
Posted phalq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDOJ:1051相关的知识,希望对你有一定的参考价值。
#include <algorithm> #include <iostream> #include <cstdio> #define K 5001 using namespace std; struct st { int l; int w; bool t; }a[K]; bool cmp(st a,st b) { if(a.l==b.l) return a.w>b.w; else return a.l>b.l; } int main(void) { freopen("in.txt","r",stdin); int N; scanf("%d",&N); while(N--) { int n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&a[i].l,&a[i].w); sort(a,a+n,cmp); int l0,w0,s=0,sign=0,m=0; while(sign!=n) { for(i=m;i<n;i++) if(a[i].t==false) { l0=a[i].l; w0=a[i].w; a[i].t==true; s++; i++; sign++; m=i; break; } for(;i<n;i++) if(a[i].t==false&&a[i].w<=w0) { l0=a[i].l; w0=a[i].w; a[i].t=true; sign++; } } printf("%d ",s); for(i=0;i<n;i++) a[i].t=false; } fclose(stdin); return 0; }
以上是关于HDOJ:1051的主要内容,如果未能解决你的问题,请参考以下文章
ACM--木头序列--贪心+递减子序列--HDOJ 1051--Wooden Sticks