poj1018
来源:互联网 发布:unity3d 2d碰撞检测 编辑:程序博客网 时间:2024/05/22 02:23
题目大意:
一套系统需要几个设备,每个设备有几个不同的制造商。不同的制造商在最大带宽和价格方面不同。整个系统的带宽我们指选择的设备的最小带宽,价格是总和。我们的目标是选择设备使得B/P最大
解题思路:
贪心算法+遍历
代码如下:
#include<stdio.h>#include<string.h>int main(){ int i,j,k,m,min,max,high,low,t,sum; int b[101][101],p[101][101],num[101],flag[32767]; double b_p,mmax; scanf("%d",&t); while(t--) { memset(flag,0,sizeof(flag)); high=32767; low=32767; scanf("%d",&m); for(i=0;i<m;i++) { min=10000; max=1; scanf("%d",&num[i]); for(j=0;j<num[i];j++) { scanf("%d",&b[i][j]); scanf("%d",&p[i][j]); flag[b[i][j]]=1; if(max<b[i][j]) max=b[i][j]; if(min>b[i][j]) min=b[i][j]; } if(low>min) low=min; if(high>max) high=max; } mmax=0; for(i=low;i<=high;i++) { if(flag[i]) { sum=0; for(j=0;j<m;j++) { min=32767; for(k=0;k<num[j];k++) { if(i <=b[j][k]) { if(min>p[j][k]) min=p[j][k]; } } sum+=min; } b_p=(double)i/(double)sum; if(mmax<b_p) mmax=b_p; } } printf("%.3lf\n",mmax); } return 0;}
0 0
- POJ1018
- poj1018
- poj1018
- poj1018
- poj1018
- poj1018
- poj1018
- poj1018
- poj1018
- poj1018
- POJ1018
- poj1018
- poj1018
- poj1018
- poj1018
- POJ1018
- POJ1018
- poj1018
- [SinGuLaRiTy-1002] Miller Rabin Prime Judge 米勒·罗宾素数判定法
- stable_sort()与sort()的用法区别
- iOS APP 上架证书打包
- 详解Shell脚本实现iOS自动化编译打包提交
- LVS工作原理以及工作模式简介
- poj1018
- Titan Graph DataBase 研究 (三)----Java API使用 上
- 监听浏览器后退按钮
- LVS集群中的IP负载均衡技术
- MongoDB Java Driver
- Bugly实现app全量更新
- DataTable、GridView、DataList导出至Word或Excel(已验证)
- Git 基础设置
- 按Enter键调用登录按钮