博弈论经典例题总结
從0開始的博弈論
首先復習一下基礎知識:博弈論基礎知識
博弈論有種找規律的感覺,基本上的模型雖然是有的,但是重點還在于找規律,找到了規律然后模型化,就是這個題目的模板了吧。
希望博弈論可以對我這個數論剛入門的菜雞友好一點點!
小小的自我感覺出來的總結:
一堆東西優先巴士博弈(找規律、SG函數),其次斐波那契
兩堆東西威佐夫博弈
n隊東西Nim博弈
最簡單的博弈? ?lv_5
*51nod 1066 Bash游戲、hdoj1846 brave game?標準bash模板題,記住模板,注意細節!
*hdoj1564 play a game *HDOJ2147 kiki's game 找規律
*HDOJ2516 取石子游戲 記住他是斐波那契博弈(是斐波那契數字后手贏)!記錯了就涼涼
需要一些技巧,我這個水平有點費腦? ?lv_4————重點在于!模板的變形
*hdu 4764 Stone bash博弈你變了,你不再是模板了。這道題主旨在于如果加到n-1,那么下一個人必輸。也就是說,面對一個距離n還有k+1的局面,另一個人是必敗的,所以跟bash模板一樣,如果(n-1)%(k+1)有余數,先手必輸,沒有余數先手必勝。
*HDU 1525 Euclid's Game 剛開始想著a是b的倍數,先手必勝,然后……就不知道該怎么辦了。
(1)a%b==0 先手獲勝。?
(2)b<a<b*2 ?(0<a-b<b)一直走下去 看誰面對滿足(1)的條件。(設立一個while循環)
(3)a/b>=2 ?先手可以選擇誰面對 b,a%b這樣的局勢。(由于倆人絕頂聰明所以默認先手必勝咯?)
*HDOJ1847 Good Luck in CET-4 Everybody! Bash博弈變形,找到規律后(以3為節點,三的倍數時先手必勝)很簡單,可以用SG函數做,SG函數還不會……還沒看呢!
*HDOJ2897 邂逅明下 巴什博弈變形,原來的巴士博弈為1~q的拿去數量,現在是p~q,以前是n%(m+1),所以推出現在是n%(p+q),好像很有道理的推理,注意判斷條件有所變化,因為我們拿去這些東西時,如果余數是小于p的,那么其實這些下個人可以一次帶走,所以最后不再是小于1了而是小于p,模擬一下,如果有p+1個,余數為1小于p,那么先手一定必敗,得出結論啦!
好難!? lv_2
*HDU 1079 Calendar Game 從1900年1月1日到2001年11月24日,一次可以移動到明天或者下一月的同一個日,沒有那一天時默認移動到明天。誰先移動到日期誰贏,但是移出去就輸了。有種bash寫數字的感覺,但是又比那個難。
經過大佬的博客我們可以知道,每一個選擇都是一個奇偶互換(月加日為那個日期)的過程。判斷一下當前過程的奇偶性,目標日期為11月4日為奇數,那么開始日期只要是偶數就是先手必勝(我也不知道為啥),特殊日期9.30->10.1,11.30->12.1奇->奇,是個特例,此情況下奇偶不變,所以如果開始日期是這兩個,說明經過一次變化還是奇數,相當于由偶數的開始日期變成奇數,結果還是這個人取得勝利。
*hdoj3032 nim or not nim? 題意是n堆石子,游戲雙方每次可以取某一堆的任意個,不可以不取,還可以把一堆分成兩堆,最后沒辦法操作的一方為輸家!思路是找sg規律
總結
- 上一篇: 20142335郝昊第三周学习总结
- 下一篇: 在Hibernate的session中同