【贪心】Communication System POJ 1018
题目链接:http://poj.org/problem?id=1018
题目大意:有n种通讯设备,每种有mi个制造商,bi、pi分别是带宽和价格。在每种设备中选一个制造商让最小带宽B与总价格P的比值B/P最大。
解法是枚举最小带宽B,每种设备在带宽大于B的制造商中找价格最小的,最后取比值最大的。
详见代码:
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,d[105][105],p[105][105],Min,Max,t;
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		memset(d,0,sizeof d);
		memset(p,0,sizeof p);
		Min=0xffff;
		Max=0;
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&d[i][0]);
			for(int j=1;j<=d[i][0];j++)
			{
				scanf("%d%d",&d[i][j],&p[i][j]);
				Max=Max<d[i][j]?d[i][j]:Max;
				Min=Min>d[i][j]?d[i][j]:Min;
			}
		}
		double ans=0;
		for(int i=Min;i<=Max;i++)
		{
			int sum=0;
			for(int j=1;j<=n;j++){
				int mx=0xffff;
				for(int k=1;k<=d[j][0];k++)
					if(d[j][k]>=i&&mx>p[j][k])
						mx=p[j][k];
				sum+=mx;
			}
			if(ans<i*1.0/sum) ans=i*1.0/sum;
		}
		printf("%.3lf\n",ans);
	}
}
												
											【贪心】Communication System POJ 1018的更多相关文章
- poj 1018 Communication System 枚举 VS 贪心
		
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21631 Accepted: ...
 - POJ 1018  Communication System(贪心)
		
Description We have received an order from Pizoor Communications Inc. for a special communication sy ...
 - POJ 1018 Communication System(树形DP)
		
Description We have received an order from Pizoor Communications Inc. for a special communication sy ...
 - poj 1018 Communication System
		
点击打开链接 Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21007 Acc ...
 - POJ 1018	Communication System (动态规划)
		
We have received an order from Pizoor Communications Inc. for a special communication system. The sy ...
 - poj 1018 Communication System (枚举)
		
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 22380 Accepted: ...
 - poj 1018(枚举+贪心)
		
通讯系统 We have received an o ...
 - Communication System(dp)
		
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25006 Accepted: 8925 ...
 - 2017ecjtu-summer training #11  POJ 1018
		
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 29218 Accepted: ...
 
随机推荐
- FZU2018级算法第一次作业 1.1fibonacci (矩阵快速幂)
			
题目 Winder最近在学习fibonacci 数列的相关知识.我们都知道fibonacci数列的递推公式是F(n)=F(n-1)+F(n-2)(n>=2 且n 为整数). Winder想知道的 ...
 - tkinter学习笔记_01
			
知识点目录: 1. 文本框 Label var = tk.StringVar() # 文本框 bg 背景颜色 fonnt 字体设置 width 长 height 高 l = tk.Label(root ...
 - tkinter python(图形开发界面) 转自:渔单渠
			
Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macinto ...
 - JavaNetty心跳监控
			
import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Map; import java ...
 - oracel 查询语句
			
1.以左边为显示表,从其他表查询关联的数据(多表查询) select a.*,b.name from da as a left join db as b on a.id = b.pid left jo ...
 - java 使用GraphQL-关联对象
			
GraphQL并不会实现关联查询,数据关联需要程序自己实现 官网首页有介绍获取多个资源只需要一个请求,如想获取用户信息和身份证信息,原来需要先查用户信息,再通过用户id查询身份证信息,而在GraphQ ...
 - JS函数的三种方式
			
函数,一段能够自动完成某些功能的代码块,函数的出现,既解决了重复使用重一功能的需求,又可以避免代码的臃肿性. 使用函数有两个要求:必须调用后才可以执行;函数名不要和关键字以及系统函数相同; 函数主要有 ...
 - CentOS下安装mysql-server提示No package mysql-server avaliable
			
出现这个原因是CentOS使用mariadb-server代替掉了mysql-server,因此如果想使用mysql-server需要先更新仓库地址,使用以下命令: wget http://repo. ...
 - paroot忘记root密码
			
打开虚拟机在倒计时进入系统前按下e键然后按照下图修改即可 crtl+x重启 mount –rw –o remount /保证磁盘可读写 然后执行passwd
 - AIR面向IOS设备的原生扩展
			
来源:http://www.cnblogs.com/alex-tech/archive/2012/03/22/2411264.html ANE组成部分 在IOS平台中,ANE的组成部分基本分为AS 3 ...