版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、算法分析習(xí)題選講(第一章)第一章Sicily 地址: http:/soj.me1020 Big Integer1021 Couple1027 MJ, Nowhere to Hide1035 DNA matching1046 Plane Spotting1051 Bikers Trip Odomete1198 Substring1176 Two Ends1020 Big Integer題目大意:給出n個(gè)整數(shù)b1,b2,.,bn,和一個(gè)大整數(shù)x,求x對(duì)每個(gè)數(shù)bi取模的結(jié)果。n=100, 1bi=1000, x的長度不超過400解題思路12345678901234567890 % m1 % m =
2、112 % m = (1 * 10 + 2) % m = (1 % m * 10 + 2) % m123 % m = (12 * 10 + 3) % m = (12 % m * 10 + 3) % m12345678901234567890 % m= ( ( 1 % m * 10 + 2 ) % m*10+3 ) % m 解題思路對(duì)bi逐個(gè)計(jì)算;高精度,模擬豎式計(jì)算。int div(char x, int b) int a=0;for (int i=0;xi!=0;i+) a=(a*10+xi-0)%b;return a;1021 Couple題目大意:N對(duì)夫婦站成一圈如果某對(duì)夫婦站在相鄰位置
3、,則從圈中移走重復(fù)以上操作問最后會(huì)不會(huì)沒人如1 3是一對(duì),2 4是一對(duì),則No如1 4是一對(duì),2 3是一對(duì),則Yes1=N=100,000解題思路類似于括號(hào)匹配,可將n對(duì)夫婦看成n種括號(hào)用一個(gè)棧來模擬,將括號(hào)逐個(gè)push到棧里當(dāng)棧頂存在匹配對(duì)時(shí)進(jìn)行pop操作看最后棧是否為空例子1如1 4是一對(duì),2 3是一對(duì)最后棧為空,輸出Yes112123114例子2如1 3是一對(duì),2 4是一對(duì)最后棧不為空,輸出No1121231423代碼stack s;for (int i=1;i=2*n;i+) if (!s.empty()&s.top()=couplei)s.pop();elses.push(i);10
4、27 MJ, Nowhere to Hide題目大意:給出N對(duì)BBS_ID IP_Address,求出IP_Address相同的BBS_ID。N=20解題思路枚舉每兩個(gè)BBS_ID IP_Address對(duì),比較IP_Address是否相同;字符串比較。for (int i=0;in;i+) for (int j=i;jn;j+) if (strcmp(ipi,ipj)=0) anscnt+=make_pair(idi,idj);1035 DNA matching給出n個(gè)DNA單鏈,問可以用這些DNA單鏈組成多少個(gè)DNA雙鏈;每個(gè)DNA單鏈最多使用一次;兩個(gè)DNA單鏈能組成DNA雙鏈,當(dāng)且僅當(dāng)兩
5、個(gè)DNA單鏈的長度相等,且對(duì)應(yīng)位置上能配對(duì),A與T配對(duì),C與G配對(duì);n=100, 每個(gè)單鏈長度不超過100。解題思路枚舉每個(gè)沒有被匹配的DNA單鏈,再枚舉另外一個(gè)沒有被匹配的DNA單鏈,如果它們能匹配,則都標(biāo)記為匹配,答案加一。for (i = 0; i N; i+) if (!vsti)for (j = i + 1; j N; j+) if (!vstj) if (match(DNAi, DNAj) ans+;vsti = vstj = true;break;1046 Plane Spotting給出一個(gè)長度為N的非負(fù)整數(shù)序列(所有數(shù)不超過200),還有兩個(gè)整數(shù)M和K,求前M個(gè)最優(yōu)的長度不小
6、于K的連續(xù)子序列。連續(xù)子序列的優(yōu)先級(jí)如何比較1、平均值大的序列優(yōu)于平均值小的2、條件1相同情況下,長度大的序列優(yōu)于長度小的3、條件1和2相同情況下,結(jié)束位置靠前的序列優(yōu)于結(jié)束位置靠后的1N300,1M100,1K300解題思路使用結(jié)構(gòu)體表示一個(gè)子序列,重寫比較操作“”。對(duì)所有可能的子序列進(jìn)行排序。struct period double aver;int length,ends;bool operator 1e-6) return a.averb.aver;if (a.length!=b.length) return a.lengthb.length;return a.endsb.ends;f
7、or (i=0;in;i+) temp=0;for (j=i+1;j=k) pcnt.length=j-i+1;pcnt.ends=j+1;pcnt.aver=(double)temp/(j-i+1);cnt+;sort(p,p+cnt);1051 Bikers Trip Odomete給出車前輪的直徑轉(zhuǎn)圈數(shù)以及時(shí)間求出車行走的路程和平均速度解題思路車輪周長 = 直徑 圓周率路程 = 周長 轉(zhuǎn)圈數(shù)平均速度 = 路程 / 時(shí)間1198 Substring用N個(gè)字符串拼成一個(gè)新的字符串要求新字符串字典序最小如: a ab ac則答案為:aabac1=N=8,每個(gè)字符串長度不超過100解題思路枚舉n
8、!種情況,最多為8!=40320種情況從中找最優(yōu)的接用STL中的next_permutation直接排序做法反例 b ba babbbasort ( sub, sub + n ) ;do string total=“”; for (i = 0 ; i n ; + + i ) total + = sub i ; ans = min ( ans , total ) ;while(next _permutation(sub, sub + n ) ) ;1176 Two Ends給出n個(gè)正整數(shù)排成一列,A和B輪流取數(shù),只能取兩端的數(shù),最后取到的數(shù)的和較大的人勝利,A和B之間的差為分值;A可以自由選擇策
9、略,B的貪心策略取兩端中較大的數(shù),如果相等則取左邊的數(shù);問A贏B的分值最大為多少。n=1000,且n為偶數(shù)。解題思路A嘗試計(jì)算所有情況,并選出自己得分最多的情況;計(jì)算所有情況時(shí),減少重復(fù)計(jì)算(動(dòng)態(tài)規(guī)劃),每個(gè)狀態(tài)為當(dāng)前數(shù)列的左右端點(diǎn)位置。int cal(int left,int right) if (right left) return 0; if (is_calleftright) return ansleftright; int ans_left = arrleft; if(arrleft+1arrright) ans_left += cal(left+1,right-1); else ans_left += cal(left+2,right); int ans_right = arrright; if (arrleft=dataj) fij=-data
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動(dòng)報(bào)靶器課程設(shè)計(jì)
- 自行車cad課程設(shè)計(jì)
- 有關(guān)趣味數(shù)學(xué)的課程設(shè)計(jì)
- 幼兒園銅鼓主題課程設(shè)計(jì)
- 網(wǎng)絡(luò)技術(shù)課程設(shè)計(jì)
- 系統(tǒng)規(guī)劃課程設(shè)計(jì)
- 椅子美背課程設(shè)計(jì)
- 新材料行業(yè)技術(shù)工作總結(jié)
- 建筑行業(yè)推廣方案分享
- 電動(dòng)車課程設(shè)計(jì)摘要
- 張家爺爺?shù)男』ü?
- 高中思想政治-高三一輪復(fù)習(xí)講評(píng)課教學(xué)課件設(shè)計(jì)
- 自動(dòng)噴水滅火系統(tǒng)的設(shè)計(jì)計(jì)算
- 教師評(píng)職稱個(gè)人綜述
- 旅游景區(qū)組織機(jī)構(gòu)
- LSI-陣列卡操作手冊(cè)
- 漢字文化解密(華中師范大學(xué))超星爾雅學(xué)習(xí)通網(wǎng)課章節(jié)測試答案
- 黑龍江省哈爾濱市八年級(jí)上學(xué)期物理期末考試試卷及答案
- 商業(yè)綜合體設(shè)計(jì)說明書
- GB/T 19587-2017氣體吸附BET法測定固態(tài)物質(zhì)比表面積
- 比賽車門凹陷修復(fù)
評(píng)論
0/150
提交評(píng)論