下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、問(wèn)題描述SticksDescription George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many sticks he had originally and how long they were originally. 解題要求1. Time Limit, Memory Limit2. In
2、put3.OutputTime Limit:5S Memory Limit:10000KInputThe input file contains blocks of 2 lines. The first line contains the number of sticks parts after cutting. The second line contains the lengths of those parts separated by the space. The last line of the file contains zero.OutputThe output file cont
3、ains the smallest possible length of original sticks, one per line.基本思路從小到大,逐個(gè)嘗試可能的長(zhǎng)度。設(shè)已知的n根短棍的長(zhǎng)度分別是:l1,l2,ln現(xiàn)在的問(wèn)題就是:要判斷這n根短棍是否可以組成m根長(zhǎng)為length的長(zhǎng)棍。這題和Dividing(1014)那題很像,從題意上可以把Dividing看成是此題的簡(jiǎn)化版本。然而仔細(xì)分析這兩題有很大不同,因此解法也是大相徑庭的。Dividing那題的數(shù)據(jù)總量可以達(dá)到20000,直接的深度優(yōu)先搜索是很難奏效的,所以我們的想法是如何有效的減少數(shù)據(jù)總量。而對(duì)于此題來(lái)說(shuō),雖然我不知道實(shí)際測(cè)試數(shù)
4、據(jù)的最大的數(shù)據(jù)量(sticks的總數(shù))是多少,但是我只用了一個(gè)長(zhǎng)為100的數(shù)組保存也沒(méi)有越界。說(shuō)明總的數(shù)據(jù)量不超過(guò)100(注:要解這題要我覺(jué)得要使用深度優(yōu)先搜索,對(duì)于深度優(yōu)先搜索來(lái)說(shuō)100已經(jīng)是很大的數(shù)了)。具體思路對(duì)于這個(gè)問(wèn)題,可以有2種不同的解決方法:1.逐個(gè)使用l1,l2,ln來(lái)填充長(zhǎng)棍。2.逐個(gè)填充長(zhǎng)棍,填完一根長(zhǎng)棍,再填下一根。無(wú)論是哪一種解題思路,我們都可以“感覺(jué)到”如果有如下的關(guān)系成立l1=l2=ln 那么對(duì)于解題是十分有利的。事實(shí)也是如此,在此種情況下將會(huì)比較高效的排除不可能的情況。此題的實(shí)際測(cè)試結(jié)果也是如此,如果讀入數(shù)據(jù)后沒(méi)有排序,我所見(jiàn)過(guò)每種算法都會(huì)超時(shí)。第一種思路的程序框
5、架bool solve(k)/填第k根短棍 for(i=0;im;i+)if(lk+第i根長(zhǎng)棍已填的部分 m) ok = 1; printf(%dn, length); return; int i; for (i = 1;i = n;i+) if (!usedi) break; usedi = 1; search(x,sticki,i);/此步和我的第一個(gè)優(yōu)化類似 usedi = 0;void search(int num,int now,int next) if (ok) return; if (now = length) solve(num + 1); return; for (int i = next + 1;i = n;i+) if (!usedi) if(sticki + now = len) usedi = 1;search(num,now + sticki,i);usedi = 0; if (ok) return; /此步和我的第三個(gè)優(yōu)化類似 if (sticki = length - now) return; 以上的程序段來(lái)自與lowai,運(yùn)行時(shí)間是20ms。在這段程序中也使用了一些優(yōu)化,經(jīng)過(guò)實(shí)驗(yàn),在不加入其中任何一個(gè)優(yōu)化的情況下,計(jì)算結(jié)果都會(huì)超時(shí)。總結(jié)1.深度優(yōu)先搜索的順序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年吉林省經(jīng)濟(jì)管理干部學(xué)院?jiǎn)握新殬I(yè)技能考試參考題庫(kù)帶答案解析
- 2026年新疆科信職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬試題帶答案解析
- 2026年泉州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考題庫(kù)有答案解析
- 2026年知識(shí)產(chǎn)權(quán)保護(hù)中心業(yè)務(wù)考核試題含答案
- 2026年長(zhǎng)江工程職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考試題帶答案解析
- 2026年縣醫(yī)保局面試綜合能力專項(xiàng)練習(xí)與考點(diǎn)提煉含答案
- 2026年生物信息學(xué)在免疫組學(xué)中應(yīng)用試題含答案
- 2026年遼陽(yáng)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試參考題庫(kù)帶答案解析
- 2026年重慶醫(yī)藥高等??茖W(xué)校單招綜合素質(zhì)考試備考試題帶答案解析
- 2026年中小學(xué)校長(zhǎng)專業(yè)標(biāo)準(zhǔn)試題及答案
- 2026年1月浙江省高考(首考)英語(yǔ)聽(tīng)力試題(含答案)
- 生活垃圾轉(zhuǎn)運(yùn)車輛調(diào)度管理方案
- 2026內(nèi)蒙古包頭市昆區(qū)殘聯(lián)殘疾人專職委員招聘2人考試備考題庫(kù)及答案解析
- 2025版《煤礦安全規(guī)程》宣貫解讀課件(電氣、監(jiān)控與通信)
- 2025年人民網(wǎng)河南頻道招聘?jìng)淇碱}庫(kù)參考答案詳解
- kotlin android開(kāi)發(fā)入門(mén)中文版
- 2025年蘇州工業(yè)園區(qū)領(lǐng)軍創(chuàng)業(yè)投資有限公司招聘?jìng)淇碱}庫(kù)完整答案詳解
- 委內(nèi)瑞拉變局的背后
- 政府補(bǔ)償協(xié)議書(shū)模板
- 語(yǔ)文-吉林省2026屆高三九校11月聯(lián)合模擬考
- 模擬智能交通信號(hào)燈課件
評(píng)論
0/150
提交評(píng)論