實用演算法實踐 第 32 篇 其它

2021-06-03 02:58:34 字數 2407 閱讀 9519

pku judgeonline, 1702, eva'sbalance是乙個平衡三進製問題的例項。將乙個某進製數轉換為平衡三進製數的方法為:先轉化為用0,1,2表示的3進製,然後通過「借位」轉換。也即:

若對應的係數為2,則變為-1,高一位+1。

若對應的係數為3,則變為0,高一位+1。

為0或1時不變

pku judgeonline, 1702, eva's balance.

有乙個天平和一套重量為3^n的砝碼,每種砝碼只有乙個。給定乙個重量,給出維持天平平衡的砝碼和重物的放置方法。39

520empty9

1,39

1,9 3,27

#include#include#includeusing namespace std;

int main()

for(i =0; i < top; i++)}}

poise = 1;

first = 1;

for(i =0; i < top; i++)else

}poise *= 3;

}if(first== 1)

cout << "";

poise = 1;

first = 1;

for(i =0; i < top; i++)else

}poise *= 3;

}if(first== 1)

cout << endl;

}}

32.2    按位運算

pku judgeonline, 3652, persistent bits.

任一分數1/n  (2 ≤ n ≤ 100),均可表示為迴圈小數的形式。例如:

1/2= .5

1/3= .(3)

1/6= .1(6)

求1/n的迴圈小數表示形式中k(0 ≤ k ≤ 9)出現的次數。

3573701

1由於這裡的n僅是乙個兩位數,所以這個題目顯得比較簡單。

#include#include#include#includeint a[101][10];

int b[101][100];

int main()

b[i][remain] ++;

remain = remain * 10;

divided = remain/i;

remain = remain%i;

a[i][divided] ++;}}

a[10][1] = 1;

for(i = 11;i < 100; i++)

/*if(i== 12)

cout<< "remain" <> n >> k)

cout <

本文中沒有加以注釋的演算法在[i]中都可以找到。本文中沒有介紹的算**述、推導也基本可以在該文中找到。

[ii]文對狀態空間搜尋的討論十分細緻、深入,圖示也非常清晰明了,寫得非常不錯。

[iii]文也是介紹人工智慧的非常不錯的書。

[iv]文內容豐富,不過由於很多問題沒有詳細引入數學模型和推導證明,所以稍顯複雜難懂。

[v]文中對圖演算法進行了綜合、精細的論述,其中最惹人注目的是其中對於演算法的數學模型分析,如其中的第四章。但是該文比較難懂。

[vi]文中對尤拉迴路、尤拉通路、有向尤拉迴路、有向尤拉通路進行了介紹。不過其中的演算法描述不夠精煉、清晰。

[vii]文全面介紹了最小割模型的原理和應用。

[viii]介紹了圖。

本文的很多演算法的實現很多都沒有優化。例如prim演算法中,從集合中取出最小的一條邊,並從集合中刪除的實現,效能上就遠不及斐波那契堆的實現。還有包含這種操作的其它演算法也是如此。

[i] introduction to algorithms, second edtion. thomas h.cormen, charlese.leiserson, ronald l.rivest, clifford stein.

[ii] artificial intelligence, structures and strategies for complex problemsolving. geoge f. luger.

[iv] 演算法藝術與資訊學競賽。劉汝佳,黃亮。清華大學出版社。

[v] 網路演算法與複雜性分析,第二版。謝政。國防科技大學出版社。

[vi] discrete mathematics, fifth edition. john a.dossey, albert d.otto,lawrence e.spence, clarles vanden eynden.

[vii] 最小割模型在資訊學競賽中的應用。胡伯濤(amber)。

[viii] introduction to gragh theorty. douglas b.west.

實用演算法實現 第 10 篇 動態規劃

pku judgeonline,1160,post office.一條直線上分布著v個村莊。要在這些村莊中的某些村莊裡建一共p個郵局,使得村莊到離它最近的郵局的距離之和最小。輸出這個的最小距離之和。10512 3 6 7 9 11 22 44 50 思路 用opt i j 記錄把前i個郵局建到前j個...

實用演算法實現 第 15 篇 對抗搜尋

人工智慧,一種現代方法 對於對抗搜尋的介紹非常好。極大值極小值策略是一種最優策略。當對手不犯錯誤時,最優策略能夠導致至少不比其它任何其它策略差的結果。需要注意的是,最優策略針對的是最優化對手 如果使用極大值極小值策略對付非最優化對手,可能沒有使用其它策略好,但是使用那些策略對付最優化對手必定要比極大...

實用演算法實現 第 10 篇 動態規劃

pku judgeonline,1160,post office.一條直線上分布著v個村莊。要在這些村莊中的某些村莊裡建一共p個郵局,使得村莊到離它最近的郵局的距離之和最小。輸出這個的最小距離之和。10512 3 6 7 9 11 22 44 50 思路 用opt i j 記錄把前i個郵局建到前j個...