下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、孿生項鏈解題北江中學(xué)【正文】一、問題描述定義合法的項鏈為一個這樣的 01 串:一個長為 L 的 01 串,經(jīng)過 L-1次旋轉(zhuǎn)(即末尾一位移到開頭)一共可以得到 L 個 01 串,在這 L 個 01 串中,最小的 01 串只能有一個,那么這個最小的 01 串就是合法的項鏈。問題一:求出長度恰為 k 的合法項鏈的總數(shù)。問題二:給出一個長為 m 的合法項鏈 i,在所有長度小于等于 n 的合法且比 m 大的項鏈中找出一條最小的項鏈。二、問題分析這是一道數(shù)學(xué)題。第一個問可以用遞推來做。遞推式子如下:于n 顆珠子后不能得回自身的項鏈)。而這這 n 條項鏈中只有 1 條是最小的,因此 n 條項鏈只對應(yīng)到一條
2、合法的項鏈。所以 f(n)=m/n。再來計算通過旋轉(zhuǎn)小于 n 顆珠子可以得回自身的項鏈的條數(shù)。項鏈被分為 n/k 段,每段長度為 k 且完全相同。那么應(yīng)該就是有 2k 種了。但是,這 2k 里面又包含了通過旋轉(zhuǎn)小于 n 顆珠子可以得回自身的項鏈,這樣就可能出現(xiàn)重復(fù)。例如 n=8,k=4。把項鏈 01010101 去掉了,當(dāng)處理 n=8,k=2 時,又把項鏈 01010101 去掉了。這就重復(fù)計算了。因此理來解決,但還有一個更簡便的方法??梢杂萌莩庠?2k 種項鏈中通過旋轉(zhuǎn)小于 n 顆珠子可以得回自身的項鏈去掉。例如上面那個例子,在 k=4 的時候,0101 旋轉(zhuǎn) 2 個珠子可以得回自身,所以
3、 并不計算它。但這樣絕不會漏情況,等到 k=2 的時候,01 就不是可以得回自身的項鏈了,這時就把這條項鏈減去了。因此2k,而是 f(k)*k。這時遞推式子就出來了。要減去的不是第二個問可以直接構(gòu)造出來。設(shè)輸入的長度為 m 的串為串 s,把珠子按 s 中的順序依次在后面循環(huán)加入,直到加滿 n 顆珠子為止。再把這個長度為 n 的二進制串加 1,去掉末尾的 0,就是了。例如:m=5,n=19,串 s 0為 01011 。 則按 照 上 面 的 方 法 , 依 次 加 入 珠 子 :。再加 1,去掉末尾的 0,得到 010110101101011011。由于構(gòu)造的串必須是原串的后繼合法串。最起碼要用
4、串 s 來填補后面的空位。因為用小于 s 的串來填的話會導(dǎo)致生成的串不合法(不是最小表示),用大于 s 的串來填會導(dǎo)致生成的串不是 s 的后繼。當(dāng) m|n 時,恰好填了 n/m 個串 s,這時的串是不合法的,因此必須加 1。當(dāng) m 不整除 n 時。設(shè) n=tm+k,其中 km。設(shè)串 s 的前 k 位的串為s1,剩下的位串 s2。則必有 s1s2。因為串 s 是一個合法串,它必定是最小表示的,所以把串 s 旋轉(zhuǎn) k 顆珠子后的到的新串 s2+s1 必定比 s1+s2 要大,所以 s1s2。若生成串的后 k 位是小于 s1 的。很明顯以后 k 位開頭才是最小表示,因此后 k 位不可能小于 s1。若
5、后 k 位等于 s1,則從后 k 位開始的串為 s1+s1+s2+,肯定比 s1+s2+要小(因為 s10 then inc(Long);End;Procedure Delete(Var a:Lion;b:Lion;VarLong:Long);Var i:longBegin;for i:=1 to Long do beginai:=ai-bi; if ai1) do dec(Long); End;Procedure Divide(Var a:Lion;Var Long:long;x:long);Var i,j,k:Long Begink:=0;for i:=Long downto 1 do b
6、eginj:=ai+k*10000; ai:=j div x; k:=j mod x;end;While (aLong=0)and(Long1)End;dodec(Long);Procedure Main1;Var i,j,Lbak:long bak:Lion;Begin;Fillchar(a,sizeof(a),0); a1:=1;L:=1;for i:=1 to k do BeginCheng(a,L,2);fi:=a;Longi:=L;for j:=1 to i shr 1 do if i mod j=0 then Beginbak:=fj; Lbak:=Longj; Cheng(bak,Lbak,j); Delete(fi,bak,Longi);End; Divide(fi,Longi,i);End; write(fk,Longk);for i:=Longk-1 downto 1 do beginif fk,i10 then write(000)else if fk,i100 then write(00) else if fk,i1 do beginck:=0;inc(ck-1); dec(k);end;for i:=1 to k do write(ci);wriEnd;n;Beginassign(input,Twi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生生活技能培訓(xùn)計劃
- 承攬工作合同書三篇
- 2024年鉗型表項目建議書
- 2024年解熱鎮(zhèn)痛類藥物項目發(fā)展計劃
- 小班兒童心理發(fā)展指導(dǎo)計劃
- 市場調(diào)研在品牌決策中的作用計劃
- 2024年芳綸纖維項目建議書
- 提高倉庫信息化水平的策略計劃
- 2024年離合器分離軸承合作協(xié)議書
- 提升文書寫作能力的計劃
- LED小間距全彩大屏設(shè)計方案(共84頁)
- 西師版《平行四邊形的面積》說課稿
- 進度與資金使用計劃表
- 世界各國不銹鋼牌號對照表
- 績效考核指標(biāo)--生產(chǎn)班組長
- 關(guān)于電梯設(shè)備移交后的重要管理提示工作函臨時
- 讓贊美飛揚學(xué)會贊美主題班會教育PPT實施課件
- 普氏理論和太沙基理論(共8頁)
- 《固體廢棄物的熱解》PPT課件.ppt
- 22.2-二次函數(shù)與一元二次方程
- (完整版)管理評審記錄
評論
0/150
提交評論