标签:
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 25744 | Accepted: 9184 |
Description
Input
Output
Sample Input
1 3 3 100 25 150 35 80 25 2 120 80 155 40 2 100 100 120 110
Sample Output
0.649
Source
该通信系统需要n种设备,而每种设备分别可以有m1、m2、m3、...、mn个厂家提供生产。
同种设备都会存在两个方面的差别:bandwidths 和 prices。
现在每种设备都各需要1个,考虑到性价比问题,要求所挑选出来的n件设备,要使得B/P最大。
其中B为这n件设备的带宽的最小值,P为这n件设备的总价。
1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 #define N 105 5 int main() 6 { 7 int a[N][N],b[N][N],tot[N];//bandwidths、prices 、输入计数 8 int t,n; 9 scanf("%d",&t); 10 while(t--) 11 { 12 double ans=0; 13 int MAX=0,MIN=0xffff;//最大最小 bandwidths 14 scanf("%d",&n); 15 for(int i=1;i<=n;i++) 16 { 17 scanf("%d",&tot[i]); 18 for(int j=1;j<=tot[i];j++) 19 { 20 scanf("%d%d",&a[i][j],&b[i][j]); 21 MAX=max(MAX,a[i][j]); 22 MIN=min(MIN,a[i][j]); 23 } 24 } 25 for(int key=MIN;key<=MAX;key++)//枚举 26 { 27 int sum=0; 28 for(int i=1;i<=n;i++) 29 { 30 int M=0xffff; 31 for(int j=1;j<=tot[i];j++) 32 if(a[i][j]>=key&&M>b[i][j]) 33 M=b[i][j]; 34 sum+=M; 35 } 36 if(1.0*key/sum>ans) ans=1.0*key/sum; 37 } 38 printf("%.3lf\n",ans); 39 } return 0; 40 }
标签:
原文地址:http://www.cnblogs.com/nicetomeetu/p/5152291.html