POJ 1018

来源:http://www.cnblogs.com/nicetomeetu/archive/2016/01/22/5152291.html
-Advertisement-
Play Games

Communication SystemTime Limit:1000MSMemory Limit:10000KTotal Submissions:25744Accepted:9184DescriptionWe have received an order from Pizoor Communica...


Communication System
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 25744   Accepted: 9184

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     大致題意:

  該通信系統需要n種設備,而每種設備分別可以有m1、m2、m3、...、mn個廠家提供生產。

同種設備都會存在兩個方面的差別:bandwidths 和 prices。

現在每種設備都各需要1個,考慮到性價比問題,要求所挑選出來的n件設備,要使得B/P最大。

其中B為這n件設備的帶寬的最小值,P為這n件設備的總價。


解題思路:
  找出最大bandwidths和最小bandwidths,然後從小到大依次枚舉,找出每種bandwidths的最大B/P(即最小prices),再比較出最大的即為answer;
 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 }

 

 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大一下學期的自我目標(要求包含對大一上學期的總結、對面向對象課程完成後學習到的能力的預期,對面向對象課程的期望、對編程和專業能力的願景規劃)在大學的第一個學期,相信很多人都是在得過且過度過,我也不例外。比起學習,對於宅男們來說游戲更是一種打發時間的好手段。好吧,轉入正題:對大一上學期的總結,其實還是...
  • 簡單寫了一個PHP的圖像處理類庫,雖然功能比較少,但是目前也沒用到太高級的,以後用到了再填吧,或者哪位給點建議加上什麼功能,或者有什麼需求可以跟我說,我有時間加上,如果哪位對這個類庫進行了擴展的話,還麻煩拿出來大家分享一下,代碼現在是能用就行,考慮的東西不是很多,有什麼更好的建議請告訴我,謝謝Img...
  • http://www.cnblogs.com/BeginMan/p/3193081.html一、Python的排序1、reversed()這個很好理解,reversed英文意思就是:adj. 顛倒的;相反的;(判決等)撤銷的print list(reversed(['dream','a','have...
  • ------------------------------------------------------------------------------------------------------------ /** 第一種方式:繼承Thread類 * 1. 定義...
  • 前言由於我的筆記本有點問題,所以這周系統包括所有硬碟全部重裝了,原來的Linux虛擬機都沒了,因此才有了這篇文章和各位朋友們分享。由於Linux環境的優越性(開源、低成本、安全性好、網路功能強大),除了某些小型的網站為了方便起見部署在Windows環境下外,基本所有網站的伺服器都是使用的Linux環...
  • 一般我們習慣的c++記憶體配置如下class Foo { ... };Foo* pf = new Foo; delete pf; 這裡的new實際上分為兩部分執行。首先是先用::operator new配置記憶體,然後執行Foo::Foo()構造對象內容。delete也一樣,先運行Foo::~Foo(....
  • 第一章 Java基礎程式目標:減輕現實生活中一類人的工作量,提高工作效率。學員最終可以書寫系統:超市管理系統,POS機系統等入庫單銷售單01.課程重點 五大重點:01.分支(選擇)結構 02.迴圈結構03.數組04.二重迴圈05.帶參方法02.什麼是電腦程式?解析:就是為了完成某一項工作而執行的一...
  • 8086彙編,輸入16進位數轉換為10進位數輸出程式
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...