-
回溯(b a c k t r a c k i n g)是一種系統(tǒng)地搜索問題解答的方法。為了實現(xiàn)回溯,首先需要為問題定義一個解空間( solution space),這個空間必須至少包含問題的一個解(可能是最優(yōu)的)。在迷宮老鼠問題中,我們可以定義一個包含從入口到出口的所有路徑的解空間;在具有n 個對象的0 / 1背包問題中(見1 . 4節(jié)和2 . 2節(jié)),解空間的一個合理選擇是2n 個長度為n 的0 / 1向量的集合,這個集合表示了將0或1分配給x的所有可能方法。當(dāng)n= 3時,解空間為{ ( 0 , 0 , 0 ),( 0 , 1 , 0 ),( 0 , 0 , 1 ),( 1 , 0 , 0 ),( 0 , 1 , 1 ),( 1 , 0 , 1 ),( 1 , 1 , 0 ),( 1 , 1 , 1 ) }。
標(biāo)簽:
搜索
上傳時間:
2014-01-17
上傳用戶:jhksyghr
-
已知斐波那契數(shù)列的定義:F(1)=1,F(2)=1,F(i)= F(i-1)+ F(i-2) (i>=3),編寫求該數(shù)列前n項的子程序
實現(xiàn)了輸入一個數(shù),然后將計算的結(jié)果保存在存儲器中
標(biāo)簽:
數(shù)列
gt
定義
編寫
上傳時間:
2013-12-21
上傳用戶:風(fēng)之驕子
-
設(shè)∑={α1, α2…… αn }是n個互不相同的符號組成的符號集。
Lk={β1β2…βk | βiЄ ∑,1≤i≤k}是∑中字符組成的長度為k 的全體字符串。
S是Lk的子集,S是Lk的無分隔符字典是指對任意的S中元素a1a2…ak, b1b2…bk.
{a2a3…akb1, a3a4…akb1b2, ……, akb1b2… bk-1 }∩S=Φ。該算法算法,對于給定的正整數(shù)n 和k,計算 Lk的最大無分隔符字典。
標(biāo)簽:
1028
符號
字符
字符串
上傳時間:
2013-12-26
上傳用戶:waitingfy
-
Ex3-23 親兄弟問題
« 問題描述:
給定n 個整數(shù)0 1 1 , , , n- a a a 組成的序列。序列中元素i a 的親兄弟元素k a 定義為:
min{ | } k i j n j j i a = a a ³ a
< <
。
親兄弟問題要求給定序列中每個元素的親兄弟元素的位置。元素i a 的親兄弟元素為k a
時,稱k 為元素i a 的親兄弟元素的位置。當(dāng)元素i a 沒有親兄弟元素時,約定其親兄弟元素
的位置為-1。
例如,當(dāng)n=10,整數(shù)序列為6,1,4,3,6,2,4,7,3,5 時,相應(yīng)的親兄弟元素位
置序列為:4,2,4,4,7,6,7,-1,9,-1。
« 編程任務(wù):
對于給定的n個整數(shù)0 1 1 , , , n- a a a 組成的序列,試用抽象數(shù)據(jù)類型棧,設(shè)計一個O(n)
時間算法,計算相應(yīng)的親兄弟元素位置序列。
« 數(shù)據(jù)輸入:
由文件input.txt提供輸入數(shù)據(jù)。文件的第1 行有1 個正整數(shù)n,表示給定給n個整數(shù)。
第2 行是0 1 1 , , , n- a a a 。
« 結(jié)果輸出:
程序運行結(jié)束時,將計算出的與給定序列相應(yīng)的親兄弟元素位置序列輸出到output.txt
中。
輸入文件示例 輸出文件示例
input.txt
10
4 2 4 4 7 6 7 -1 9 -1
output.txt
6 1 4 3 6 2 4 7 3 5
標(biāo)簽:
61516
laquo
min
序列
上傳時間:
2013-12-17
上傳用戶:shizhanincc
-
給定n個整數(shù)a , a , ,an 1 2 組成的序列。序列中元素i a 的符號定義為:
ï î
ï í
ì
- <
=
>
=
1 0
0 0
1 0
sgn( )
i
i
i
i
a
a
a
a
符號平衡問題要求給定序列的最長符號平衡段的長度L,即:
þ ý ü
î í ì
= + - = å
=
£ £ £
max 1| sgn( ) 0
1
j
k i
i j n k
L j i a 。
例如,當(dāng)n=10,相應(yīng)序列為:1,1,-1,-2,0,1,3,-1,2,-1 時,L=9。
標(biāo)簽:
iuml
61516
icirc
序列
上傳時間:
2015-10-28
上傳用戶:xaijhqx
-
動態(tài)規(guī)劃的方程大家都知道,就是
f[i,j]=min{f[i-1,j-1],f[i-1,j],f[i,j-1],f[i,j+1]}+a[i,j]
但是很多人會懷疑這道題的后效性而放棄動規(guī)做法。
本來我還想做Dijkstra,后來變了沒二十行pascal就告訴我數(shù)組越界了……(dist:array[1..1000*1001
div 2]...)
無奈之余看了xj_kidb1的題解,剛開始還覺得有問題,后來豁然開朗……
反復(fù)動規(guī)。上山容易下山難,我們可以從上往下走,最后輸出f[n][1]。
xj_kidb1的一個技巧很重要,每次令f[i][0]=f[i][i],f[i][i+1]=f[i][1](xj_kidb1的題解還寫錯了)
標(biāo)簽:
動態(tài)規(guī)劃
方程
家
上傳時間:
2014-07-16
上傳用戶:libinxny
-
經(jīng)典c程序100例==1--10 【程序1】 題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少? 1.程序分析:可填在百位、十位、個位的數(shù)字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。 2.程序源代碼: main() { int i,j,k printf("\n") for(i=1 i<5 i++) /*以下為三重循環(huán)*/ for(j=1 j<5 j++) for (k=1 k<5 k++) { if (i!=k&&i!=j&&j!=k) /*確保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k) }
標(biāo)簽:
100
程序
10
數(shù)字
上傳時間:
2014-01-07
上傳用戶:lizhizheng88
-
求解網(wǎng)絡(luò)中的最短路徑。假設(shè)某個計算機網(wǎng)絡(luò)有n個站點,依次編號為1,2,…,n;有的站點之間有直接的線路連接(即這兩個站點之間沒有其它站點),有的站點之間沒有直接的線路連接。如果用三元組(i,j,f)來表示該網(wǎng)絡(luò)中的站點I和站點j之間有直接的線路連接且它們之間的距離為f 當(dāng)已知該網(wǎng)絡(luò)各站點之間的直接連接情況由m個三元組(i1,j1,f1),(i2,j2,f2),…,(im,jm,fm)確定時,要求計算出對于網(wǎng)絡(luò)中任意一個站點g(1≤g≤n)到其余各站點的最短距離。
標(biāo)簽:
網(wǎng)絡(luò)
最短路徑
站點
計算機網(wǎng)絡(luò)
上傳時間:
2013-12-27
上傳用戶:asdkin
-
給定n 個整數(shù)a ,a , ,an 1 2 組成的序列, a n i | |£ ,1 £ i £ n。如果對于i £ j ,有
0 = å
=
j
k i
k a ,則稱序列區(qū)間i i j a , a , , a +1 為一個零和區(qū)間,相應(yīng)的區(qū)間長度為j-i+1。
標(biāo)簽:
61516
an
整數(shù)
序列
上傳時間:
2015-07-23
上傳用戶:zhangzhenyu
-
給定n 個整數(shù)a ,a , ,an 1 2 組成的序列, a n i | |£ ,1 £ i £ n。如果對于i £ j ,有
0 = å
=
j
k i
k a ,則稱序列區(qū)間i i j a , a , , a +1 為一個零和區(qū)間,相應(yīng)的區(qū)間長度為j-i+1。
標(biāo)簽:
61516
an
整數(shù)
序列
上傳時間:
2013-12-21
上傳用戶:偷心的海盜