poj1018

来源:互联网 发布:sql中group by 编辑:程序博客网 时间:2024/06/06 12:20

用的是最笨的方法,直接暴力啦!

#include<iostream>using namespace std;typedef struct fun{int b,p;}rr;fun a[105][105];int b[105];int cmp(const void *a,const void *b){fun *c=(fun *)a;fun *d=(fun *)b;if(c->p!=d->p)return c->p-d->p;elsereturn c->b-d->b;}int main(){int i,j,t,n,k,sign;scanf("%d",&t);while(t--){scanf("%d",&n);for(i=0; i<n; i++){scanf("%d",&b[i]);for(j=0; j<b[i]; j++)scanf("%d%d",&a[i][j].b,&a[i][j].p);qsort(a[i],b[i],sizeof(fun),cmp);}/*for(i=0; i<n; i++){for(j=0; j<b[i]; j++)printf("%d %d ",a[i][j].b,a[i][j].p);printf("\n");}*/int bt,price;double s=0,q;for(i=0; i<n; i++){        for(j=0; j<b[i]; j++){sign=0;bt=a[i][j].b;price=a[i][j].p;for(k=0; k<n; k++){if(k==i)continue;int r=0;while(a[k][r].b<bt && r<b[k])r++;if(r>=b[k])//不存在以这个为最小的{sign=1;break;}elseprice+=a[k][r].p;}if(sign==0){                   q=(1.0*bt)/(1.0*price);   if(q>s)    s=q;}}}printf("%0.3lf\n",s);}return 0;}


 

原创粉丝点击