一、TopCoder提供的Google比賽模擬題(由作者翻譯),版權(quán)所有
問題1: 造一個長方形的房子,門窗墻為基本單元,長度均為4米,在以下條件下如何擺放四面墻能圍成最大面積? 1) 一面最多有一個門 2) 房子至少有一個門 3) 門不能安在角落里 4) 窗的兩側(cè)都要是墻
已知墻的個數(shù)numReg, 窗的個數(shù)numWin, 門的個數(shù)numDoor,寫一個函數(shù)maxArea,返回四面墻能圍成的最大面積
舉例如下 maxArea(8,0,0)=0;//因?yàn)榉孔硬荒軟]有門 maxArea(8,0,1)=48;//12*4, 如: --- 三個墻 |。 兩邊各一個墻 -D- 兩個墻夾一個門
maxArea(9,8,2)=144;//12*12,如: -D- 兩個墻夾一個門 | | 兩邊各一個墻 W。 兩邊各一個窗戶 | | 兩邊各一個墻 -D- 兩個墻夾一個門
maxArea(6,23,13)=48;//12*4,如: -W- 兩個墻夾一個窗戶 |。 兩邊各一個墻 -D- 兩個墻夾一個門
問題二: 各個細(xì)胞都有其自身的分?jǐn)?shù),某協(xié)議表示存在一個臨界值(允許小數(shù)),凡是分?jǐn)?shù)小于該值的一般不得癌,反之就得癌。當(dāng)然也會存在出錯的,出錯的記下其方差(即分?jǐn)?shù)和臨界值的差的平方),符合該協(xié)議的則方差為0,而平均方差是所有方差的平均。 已知一系列細(xì)胞的分?jǐn)?shù)(整數(shù),2到50之間)及其得癌與否(C表示得了,N表示未得),求在所有可能的臨界值中最小的平均方差
舉例如下 {3,3,1,8} "NNNC" =0;//如果選擇臨界值為5,則均符合規(guī)律,方差均為0,故為(0+0+0+0)/4
{5,2,3,6} "CCNC" =0.125;//如果選擇臨界值為2.5,2和3不符合規(guī)律,故為(0+(2.5-2)^2 +(3-2.5)^2+0)/4 = 0.125
{5,2,3,6,2} "CCNCN" =0.1;//如果選擇臨界值為2.5,2和3不符合規(guī)律,故為(0+(2.5-2)^2 +(3-2.5)^2+0+0)/5 = 0.1
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20} "NNNCNNNCNNNCNCCCCCCC" =2.34
問題三: 要重排英文小寫字母表的字母順序,通過一串由B和A組成的規(guī)則字符串限制相鄰字母的關(guān)系,如規(guī)則字符串第一個字符表示a和b之間的先后關(guān)系,第二個表示b和c之間的先后關(guān)系,以此類推 B表示必須在..前,A表示必須在..后,如BAA表示,a必須在b前,b必須在c后,c必須在d后 沒有提供相互關(guān)系的字母不能出現(xiàn),即如果該規(guī)則字符串有k個字母,則字母表只包含從a開始的k+1個字母,如BAA只提供了abcd之間的關(guān)系,不包含d之后的字母
已知該規(guī)則字符串decree,寫一個方法choices,求符合該規(guī)則的字母表的個數(shù),如果超過1,000,000,000就返回 -1. 舉例如下 "BAA"=3;//表示a必須在b前,b必須在c后,c必須在d后,可能組合為 adcb, dacb, dcab
"AAAA"=1;//edcba為唯一可能 "BABABABABABABABABABABABAB"=-1;//超過1,000,000,000種可能
(要求一小時內(nèi)完成)
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
上一頁 下一頁 中學(xué)生一天的解答
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|