日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > POJ 1018(dp Or 枚舉)

POJ 1018(dp Or 枚舉)

來源:程序員人生   發(fā)布時間:2015-01-14 08:55:52 閱讀次數(shù):3457次

Communication System
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 23738   Accepted: 8437

Description

We have received an order from Pizoor Communications Inc. for a special communication system. The system consists of several devices. For each device, we are free to choose from several manufacturers. Same devices from two manufacturers differ in their maximum bandwidths and prices. 
By overall bandwidth (B) we mean the minimum of the bandwidths of the chosen devices in the communication system and the total price (P) is the sum of the prices of all chosen devices. Our goal is to choose a manufacturer for each device to maximize B/P. 

Input

The first line of the input file contains a single integer t (1 ≤ t ≤ 10), the number of test cases, followed by the input data for each test case. Each test case starts with a line containing a single integer n (1 ≤ n ≤ 100), the number of devices in the communication system, followed by n lines in the following format: the i-th line (1 ≤ i ≤ n) starts with mi (1 ≤ mi ≤ 100), the number of manufacturers for the i-th device, followed by mi pairs of positive integers in the same line, each indicating the bandwidth and the price of the device respectively, corresponding to a manufacturer.

Output

Your program should produce a single line for each test case containing a single number which is the maximum possible B/P for the test case. Round the numbers in the output to 3 digits after decimal point. 

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

Tehran 2002, First Iran Nationwide Internet Programming Contest

[Submit]   [Go Back]   [Status]   [Discuss]

dp做法,dp[i][j]表示前i個物品最小帶寬為j所需的最小費用。

/************************************************************************* > File Name: xiaozhao.cpp > Author: acvcla > QQ:acvcla@gmail.com > Mail: acvcla@gmail.com > Created Time: 2014年12月27日 星期1 22時34分13秒 *************************************************************************/ #include<cstdio> #include<iostream> #include<string> #include<cstring> #include<cmath> #include<algorithm> #include<queue> #include<cstdlib> #include<vector> #include<set> #include<map> #include<stack> using namespace std; typedef long long ll; typedef pair<int,int>pii; const int maxn=1e2+10; const int maxv=1e3+10; int dp[maxn][maxv],b[maxn],p[maxn]; int main() { int T,n,m; scanf("%d",&T); while(T--) { scanf("%d",&n); memset(dp,0,sizeof dp); int maxb=0; for(int i=0;i<n;++i) { scanf("%d",&m); for(int j=0;j<m;++j){ scanf("%d%d",&b[j],&p[j]); maxb=max(maxb,b[j]); } if(i==0) { for(int j=0;j<m;++j) { if(!dp[0][b[j]])dp[0][b[j]]=p[j]; else dp[0][b[j]]=min(dp[0][b[j]],p[j]); } continue; } for(int j=1;j<=maxb;j++) if(dp[i⑴][j]) { for(int k=0;k<m;k++) { int minb=min(b[k],j); if(!dp[i][minb])dp[i][minb]=dp[i⑴][j]+p[k]; else dp[i][minb]=min(dp[i][minb],dp[i⑴][j]+p[k]); } } } double ans=0; for(int i=1;i<=maxb;i++) { if(!dp[n⑴][i])continue; ans=max(ans,1.0*i/dp[n⑴][i]); } printf("%.3f ", ans); } return 0; }

枚舉竟然比dp更快。。。,枚舉最小帶寬。


/************************************************************************* > File Name: xiaozhao.cpp > Author: acvcla > QQ:acvcla@gmail.com > Mail: acvcla@gmail.com > Created Time: 2014年12月27日 星期1 22時34分13秒 *************************************************************************/ #include<cstdio> #include<iostream> #include<string> #include<cstring> #include<cmath> #include<algorithm> #include<queue> #include<cstdlib> #include<vector> #include<set> #include<map> #include<stack> using namespace std; typedef long long ll; typedef pair<int,int>pii; const int maxn=1e4+10; const int inf=0x3f3f3f3f; vector<pii>communication[maxn]; vector<int> v; double work(int x,int n) { int b=inf; double p=0; for(int i=0;i<n;i++) { int ch=⑴; for(int j=0;j<communication[i].size();++j) if(communication[i][j].first>=x) { if(ch==⑴||communication[i][j].second<communication[i][ch].second|| (communication[i][j].second==communication[i][ch].second&&communication[i][j].first>communication[i][ch].first)){ ch=j; } } if(ch==⑴)return ⑴.0; b=min(b,communication[i][ch].first); p+=communication[i][ch].second; } return b/p; } double solve(int n) { sort(v.begin(), v.end()); unique(v.begin(), v.end()); int L=0,R=v.size(); double ans=⑶.0,p=0; for(int i=0;i<v.size();++i) { p=work(v[i],n); if(p<=0)return ans; ans=max(p,ans); } return ans; } int main() { int T,n,m; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=0;i<n;i++)communication[i].clear(); v.clear(); for(int i=0;i<n;i++) { scanf("%d",&m); int b,p; while(m--) { scanf("%d%d",&b,&p); v.push_back(b); communication[i].push_back(make_pair(b,p)); } } printf("%.3f ", solve(n)); } return 0; }



生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩精品一区二区三区 | 九九九九九九精品 | 九九亚洲精品 | 午夜激情视频在线观看 | 亚洲日本一区二区 | 91视频一区二区三区 | 欧美日韩一区二区三区不卡 | 亚洲精品高潮久久久久久久 | 国产成人精品免费视频 | 亚洲精品电影在线 | 一区二区三区高清在线观看 | 欧美在线三区 | 国产在线播放不卡 | 夜夜操网站| 在线不卡一区 | 日韩精品一区在线观看 | 国产精品1区2区3区 在线一级黄色片 | 精品久久亚洲 | 日韩福利一区二区 | 黄色大片儿. | 黄色免费网站在线观看 | 日韩精品一区二 | 91精品国产欧美一区二区 | 岛国片在线免费观看 | 国产一区二区三区四区www. | 偷拍自拍在线视频 | 日本中文字幕在线播放 | 狼人综合视频 | 国产99在线视频 | 涩涩网页| 日韩精品视频免费 | 久久国产精品99久久久大便 | 国产一区二区三区在线免费观看 | 久久av影院| 久久久精品动漫 | 中文字幕一区二区三区四区在线观看 | 天天摸夜夜 | 国产日韩欧美不卡 | 久久久久国产精品免费免费搜索 | 亚洲精品乱码久久久久久 | 亚洲欧洲精品在线 |