




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
ACM/ICPC競賽訓(xùn)信息 1 2 成N節(jié)長度各異的小木棒3的他想知道這些棍子最短可能有4棍子長度56真的要每個(gè)長度都試嗎7 第i根的拼法,重拼第i根直至有可 第1根棍子的拼8本題的“狀態(tài)”是什么M:(N,(0,9(R,(R-1,M-拼接一節(jié)長度為(R,(R-1,M-(R-1,M-(R,拆掉一節(jié)長度為(R-1,M-(R,以N=10,L=57為例(10節(jié)木棒,假設(shè)棍子長度是
初始 棍子以N=10,L=57為例(10節(jié)木棒,假設(shè)棍子長度是
初始 棍子初始初始(10節(jié)木棒,假設(shè)棍子長度是棍子初始初始(10節(jié)木棒,假設(shè)棍子長度是棍子初始初始(10節(jié)木棒,假設(shè)棍子長度是棍子boolDfs(intR,intM表示:當(dāng)前有R根未用木棒,而且當(dāng)前正在拼的那根棍子比假定的棍子長度還少M(fèi)求在這Dfs的基本遞推關(guān)boolDfs(intR,intM){if(R==0&&M==Dfs(R–1,M-return}#include<iostream>#include<stdlib.h>#include<vector>#include<algorithm>usingnamespacestd;intN;intvector<int>intanUsed[65];//是否用過的標(biāo)記inti,j,k;intDfs(intR,intint{while(1)cin>>N;if(N==0)intnTotalLen=0;for(inti=0;i<N;i++){intn;cin>>n;}for(L=anLength[0];L<=nTotalLen/2;L++){if(nTotalLen%L)if(Dfs(N,L)){cout<<L<<endl;}}if(L>nTotalLen/2cout<<nTotalLen<<}//whilereturn}intDfs(intR,intM)//M表示當(dāng)前正在拼的棍子和L比還缺的長if(R==0&&M==0returnifM0//一根剛剛拼ML;//for(inti=0;i<N;i++)if(!anUsed[i]&&anLength[i]<=M){anUsed[i]=1;if(Dfs(R-M-anLength[i]))returntrue;anUsed[i]0;//說明本次不能用第i//第i根以}}return 有100多節(jié)木棒呢
第一種剪枝方案如果某次拼接選擇長度為S的木棒,導(dǎo)致最終過所有長度為S的木棒第二種剪枝方案功,那么就要第i-1根棍子的拼法如果不存在第i-1根棍子,那么就本次假設(shè)的若棍子i如下拼法導(dǎo)致最后不能成功木棒 木棒 木棒可以考慮把木棒2,3換掉重拼棍子i,但是把2,3都去第二種剪枝方案為什么替換第i根棍子的第一根木棒是沒用的,棍子木棒木棒棍子木棒木棒木棒以N=10,L=57為例(10節(jié)木棒,假設(shè)棍子長度是
初始棍子以N=10,L=57為例(10節(jié)木棒,假設(shè)棍子長度是
初始 棍子初始初始(10節(jié)木棒,假設(shè)棍子長度是棍子初始初始(10節(jié)木棒,假設(shè)棍子長度是棍子intDfs(intR,intM)//M表示當(dāng)前正在拼的棍子和L比還if(R==0&&M==0returnif(M0//一根剛剛拼ML;//開始拼新的一for(inti=0;i<N;i++)if(!anUsed[i]&&anLength[i]<=M){if(i>0){if(anUsed[i-1]==&&anLength[i]anLength[i-1])continue;//剪枝1}anUsed[i]=ifDfs(R M-anLength[i]))returntrue;else
//第i根以后還有if(M==returnfalse;//剪枝}}}return}第三種剪枝方案木棒木棒3第三種剪枝方案木棒 木棒
木棒 第四種剪枝方案木棒木棒木棒3比木棒2長,這種情況的出現(xiàn)是一種浪費(fèi)。因?yàn)橐沁@樣往下能成功,那么2,3對調(diào)的拼法肯定也第四種剪枝方案木棒木棒intDfs(intR,int//M表示當(dāng)前正在拼的棍子和L比還缺的長{if(R==0&&M==0returnifM0//一根剛剛拼ML;//開始拼新的一intnStartNo=0;ifML//剪枝4nStartNo=nLastStickNo+for(inti=nStartNo;i<S;i++)if(!anUsed[i]&&anLength[i]<=M){if(i>0){if(anUsed[i-1]==&&anLength[ianLength[i-1])continue;//剪枝1}anUsed[i]=1;nLastStickNo= if(Dfs(R-M-anLength[i]))returntrue;else
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保證合同范本官網(wǎng)
- 丹巴客棧轉(zhuǎn)讓合同范本
- 優(yōu)化合同范本
- 海南植被垂直綠化施工方案
- 勞動(dòng)合同保險(xiǎn)合同范本
- 出入口智能停車場施工方案
- 1080個(gè)常用合同范本
- 第二單元第6課《網(wǎng)絡(luò)基礎(chǔ)》教學(xué)設(shè)計(jì) 2023-2024學(xué)年青島版(2019)初中信息技術(shù)第一冊
- 到家購房合同范本
- 利用資源合同范本
- 振動(dòng)振動(dòng)測試基礎(chǔ)知識(shí)培訓(xùn)課件
- 《云南瀾滄鉛礦有限公司勐濱煤礦采礦權(quán)價(jià)款退還計(jì)算說明》
- sbl-ep16高低壓開關(guān)柜培訓(xùn)中法文kyn6140.5安裝使用說明書
- GB/T 9113.1-2000平面、突面整體鋼制管法蘭
- GB/T 8947-1998復(fù)合塑料編織袋
- PALL 頗爾過濾器 -乙烯系統(tǒng)培訓(xùn)
- 2021年湖北師范學(xué)院專升本C語言程序設(shè)計(jì)試卷
- CB/T 3136-1995船體建造精度標(biāo)準(zhǔn)
- 疫苗冰箱溫度記錄表
- 全科醫(yī)療服務(wù)模式及服務(wù)內(nèi)容課件
- X射線衍射課件(XRD)
評(píng)論
0/150
提交評(píng)論