| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
虽然跟很多人的贪心不太一样,但是我认为这个算法还是没错的吧??!In Reply To:Re:代码如下: Posted by:Basara at 2006-08-10 22:31:24 > #include <iostream>
> using namespace std;
>
> typedef struct {
> int len;
> int wid;
> }item;
> item wood[5000];
> item queue[5000];
>
> int compare(const void *a, const void *b){
> return (*((item *)b)).len +(*((item *)b)).wid -(*((item *)a)).len -(*((item *)a)).wid;
> }
> int main(){
> //freopen("test.txt","r",stdin);
> int kase,i,j,n,queuelen,find;
> scanf("%d",&kase);
> while(kase--){
> scanf("%d",&n);
> for(i=0;i<n;i++){
> scanf("%d%d",&wood[i].len,&wood[i].wid);
> }
> qsort(wood,n,sizeof(item),compare); //sort decreasely by sum of len and wid
> queuelen=0;
> queue[0]=wood[0];
> for(i=1;i<n;i++){
> find=0;
> for(j=0;j<=queuelen;j++){
> if(wood[i].len<=queue[j].len && wood[i].wid<=queue[j].wid){
> find=1;
> queue[j]=wood[i];
> break;
> }
> }
> if(!find) {
> queue[++queuelen]=wood[i];
> }
> }
> printf("%d\n",queuelen+1);
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator