- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
暴力法剪枝建表离散化堆叠伫列基础资料结构XFS
CK6125 姜俊宇
暴力法 Brute Force
暴力法是初學以及初期比賽時最容易想到的方法 ,雖然常常會造成複雜度過高,但面對一些看不出
解法 、NP 問題或是測資很弱的時候 ,也不失為一種不錯的方法。
不過單純的暴力就如同現實生活中的暴力一般 ,常常會造成悲慘的結果,因此有時候我們需要一些
優化的方法來幫助我們 。
剪枝 Pruning
剪枝是一種很抽象的概念 ,亦即將狀態樹中沒有必
要搜尋的分枝剪掉 (亦即不搜尋該子樹)。
每種題目的剪枝可能不一樣 (性質不同),要思索一下 。
想一想 USACO Chap5.4 貝西的旅途 Betsy’s Tour(betsy)
一個正方形的鎮區分為 N*N 個小方塊 (1 = N = 7)。
農場位於方格的左上角 ,集市位於左下角。
| | | |
貝茜穿過小鎮 ,從左上角走到左下角,剛好經過每個方格一次。 | F********** |
| | | * |
請寫一個程式,對於給出的 N 值,計算貝西從農場走到集市有多少種唯一的路徑 。*
挑戰題 USACO Chap4.1 奶牛加密術 Cryptcowgraphy (cryptcow) | | | * |
| ***** | * |
除了一些針對特性的剪枝 ,也有一些比較有名比較固定的剪枝法,像是: | * | * | * |
alpha-beta pruning (α-β剪枝 ,適用於Min-Max Decision 問題 )…等,有興趣的同學可以 ***
| * | * | * |
自己找資料學習 (不過北市賽應該沒有機會出現 ) | M | ****** |
建表法 Table Creating | | | |
算是有點奧步的方法 ,亦即預先在電腦內算出答案並入程式內,當要查詢的時候就可以O(1)查詢 。
但有些題目就是要用建表 ,通常可以由時限以及數據大小看出來(看大家的 Code Length 也可以看出端倪)
想一想 TIOJ1259 染紅的街道同 Betsy’s Tour ,但指定起點與終點。
挑戰題 TIOJ1265 保加利亞的桌子
輸入輸出優化 I/O Optimization
一個 I/O 函式的運作速度通常跟它的功能多寡成反比 ,亦即功能較少、較為簡單的函數理論上會比
較快 。cin / cout, scanf() / printf()的功能那麼多 ,想必速度一定比較慢,而功能較少的gets() / puts(), getchar()
/ putchar()則會比較快 。
依照功能多寡排序 :cin / cout scanf() / printf() gets() / puts()
文档评论(0)