百度之星astar2008程序設計大賽預賽2

                             百度之星astar2008程序設計大賽預賽2
點擊數:1    發佈日期:2008-6-1 18:22:00  
【收藏】 【評論】 【打印】 【編程愛好者論壇】 【關閉】

 

1. 成語糾錯 (15分)
問題背景
成語是中華民族的文化瑰寶,作爲歷史的縮影、智慧的結晶、漢語言的精華,閃爍着睿智的光芒。
你的任務是給一個錯誤的四字成語進行糾錯,找到它的正確寫法。具體來說,你只允許修改四個漢字中的其中一個,使得修改後的成語在給定的成語列表中出現。原先的錯誤成語保證不在成語列表中出現。

有時,這樣的“糾錯”結果並不惟一。例如“一糯千金”可以改爲“一字千金”也可以改成“一諾千金”。但由於“糯”和“諾”是同音字,“一糯千金”實爲“一諾千金”的可能性比較大。
因此,我們還將提供一個漢字分類表,要求修改前後的兩個字必須屬於同一個分類。
在這樣的限制下,我們保證成語糾錯的結果惟一。


注意
1、漢字均採用GBK編碼(參見FAQ)
2、每個漢字分類至少包含兩個漢字,同一個漢字可能出現在多個類別中,同一類別的漢字各不相同。
3、成語列表中的成語都是真實存在的四字成語,未在分類表中出現的漢字不允許修改。

 

輸入格式
輸入第一行包含兩個整數n, m(1<=n<=200, 1<=m<=20000)。n表示漢字類別的個數,m表示成語的個數。
以下n行每行用一個無空白分隔符(空格、TAB)的漢字串表示一個分類中的所有漢字。注意,該漢字串最多可能包含200個漢字。
以下m行爲成語列表,每行一個成語,恰好四個漢字。
最後一行爲待糾錯的成語,恰好四個漢字,且不在成語列表中出現。

輸出格式
僅一行,爲一個四字成語。在“修改必須在同一分類中進行”的限制下,輸入數據保證糾錯結果惟一。

樣例輸入
7 3
糯諾挪喏懦
字自子紫籽
前錢千牽淺
進近今僅緊金斤盡勁
完萬
水睡稅
山閃衫善扇杉
一諾千金
一字千金
萬水千山
一糯千金

樣例輸出
一諾千金

2. 圓內五角星 (20分)

問題背景

如圖,一個半徑爲1的圓周上有5個點。按角度制給出5個點的極角Ai (0<=Ai<360, i=1..5)。按下圖的方法連成一個五角星, 計算圓被切割成的11個部分面積的方差。


具體地說, 假定11個區域的面積分別爲S1,S2, ..., S11,那麼面積的均值計算方法爲:
M = (S1+S2+...+S11 ) / 11

面積的方差計算方法爲:
D = ((S1-M)2 + (S2-M)2 + ... + (S11-M)2) / 11

 

輸入格式

輸入僅一行,包含 5 個 [0,359] 內的互不相等的整數。
注意:連接五角星的方式取決於 5 個點在圓周上的排列順序,和輸入順序無關。

輸出格式

輸出僅一行,包含一個實數,即各部分面積的方差。輸出保留小數點後4位。

樣例輸入

0 144 72 288 216

樣例輸出

0.0144

 

3. 傳輸方案規劃 (30分)
問題背景
面對艱鉅複雜的技術挑戰,百度所崇尚的系統設計哲學是“簡單可依賴”,而百度的工程師們正在互聯網世界中實踐着這種理念。這裏正好有一個挑戰,讓作爲百度之星的你小試牛刀:

在處理數以百億計的網絡信息的過程中,有一個很常見的問題:
怎麼樣將一個集羣上的信息以最低的成本傳輸到另外一個集羣上?


數據源集羣A有n臺服務器,編號爲 1, 2, ..., n,i號服務器上待傳輸的數據量爲Ai ,單位是GB。
目的地集羣B有m臺服務器,編號爲 1, 2, ..., m,j號服務器上的空閒容量爲 Bj,單位爲 GB。
A集羣的i號服務器上的每GB數據對於B的集羣的j號服務器收益爲Vi,j,從 A 集羣的 i 號服務器向 B 集羣的 j 號服務器傳輸 1GB數據的開銷爲Ci,j。
你的任務是在保證A中的所有數據傳輸完畢的前提下,性價比V/C儘量高。其中V爲所有數據在B集羣上的價值之和,C爲總開銷。換句話說,若A集羣的i號服務器向B集羣的j號服務器發送了Ti,j個GB的數據(Ti,j不一定是整數),則性價比定義爲:

 

 

輸入格式
第1行兩個整數n, m(1<=n,m<=50),即集羣A和B各自的服務器臺數。
第2行包含n個不超過100的正整數A1,A2,…,An,即集羣A中每臺服務器的待傳輸數據量(單位:GB)。
第3行包含m個不超過100的正整數B1,B2,…,Bm,即集羣B中每臺服務器所能接受的最大數據量(單位:GB)。
第 4 ~ n+3 行每行包含m個不超過100的非負整數Vi,j,表示集羣A的i號服務器中每GB數據對於集羣B中的j號服務器的價值。
第 n+4 ~ 2n+3 行每行包含m個不超過100的正整數Ci,j,表示集羣A的i號服務器中每GB數據傳輸到集羣B中的j號服務器所需要的開銷。

輸出格式
僅一行,爲最大性價比。輸出保留三位小數(四捨五入)。如果A的數據無法傳輸完畢,輸出字符串 “-1”(無引號)。

樣例輸入
2 2
1 2
2 1
11 0
7 5
6 1
3 2

樣例輸出
2.091

樣例解釋
一個方案是:
集羣A的1號服務器把所有數據傳輸到集羣B的1號服務器,價值11,開銷6。
集羣A的2號服務器把1GB數據傳輸到集羣B的1號服務器,價值7,開銷3,然後把剩下的1GB數據傳輸到集羣B的2號服務器,價值5,開銷2。
性價比:(11+7+5)/(6+3+2)=2.091

另一個方案是:
集羣A的1號服務器把所有數據傳輸到集羣B的2號服務器,價值0,開銷1。
集羣A的2號服務器把所有數據傳輸到集羣B的1號服務器,價值14,開銷6。
性價比:(0+14)/(1+6)=2。

第一種方案更優。

 

4. 公平數 (35分)
問題背景
如果一個整數的十六進制表示(不含前導0)中,前一半數字之和等於後一半數字之和,我們稱它爲公平數。
注意,如果該數的十六進制表示中包含奇數個數字,則正中間的數字既不屬於前一半,又不屬於後一半。

例如在十六進制下1+D=7+7,因此1DE77是公平數。數字E並不參與計算。
再例如,所有單個數字的十六進制數(即0~F)均爲公平數,但F0不是(不能把F0補充前導0寫成0F0,進而認爲它是公平數)。

給出十六進制數 K, X, Y 和十六進制數字集合 S,求區間[X, Y]之內,有多少個公平數滿足:

十六進制表達式(不包含前導0)中每個數字均在集合S中
並且爲K的倍數

輸入格式
輸入第一行爲數字集S,包含0~9以及大寫字母A~F。
每個數字或字母最多出現一次。
第二行包含 3 個十六進制正整數K, X, Y,均不超過 10 個數字(包含0~9以及大寫字母A~F,不包含前導 0)。

輸出格式
僅一行,包含一個整數,即滿足條件的公平數個數(10進制)。

樣例輸入
124C
5 100 FFF

樣例輸出
4

樣例解釋
只有四個數滿足條件:212,424,4C4,C1C。

發佈了43 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章