原创 hdu1010---Tempter of the Bone

開始想着用廣搜寫寫,後來想想感覺就是自己給自己找不自在,沒法寫。然後又開始用深搜來做,以前雖然學過深搜,但是好久沒寫,手很生,但是還是經過一番推理後寫出來了,很開心。結果果斷交上去就TLE了,後來想想應該可以剪枝吧,於是就剪枝,只是剪掉了

原创 Nimm’s Game

在幾個經典的博弈中,Nimm‘s Game 是最美妙的。 題目要求:有3堆各若干個物品,兩個人輪流從某一堆取任意多的物品,規定每次至少取1個,多者不限,最後取光者得勝。 解題思路: 我們用(a,b,c)表示某種局勢,如果面對的這種局勢會令

原创 hdu1507——Uncle Tom's Inherited Land*————————【二分圖最大匹配、奇偶分離】

/*    二分圖最大匹配,同時加上奇偶分離。用匈牙利算法增廣找最大匹配及相互匹配的點對 */ 題目大意:有n*m的一塊兒土地遺產,現在想要賣掉,已知黑格子是池塘不能賣,白格子需要兩塊兒連一起才能賣,問最多能賣多少個這樣的可賣土地。 /*

原创 高精度運算之乘法

乘法運算之終極狀態。(可以處理所有乘法運算,略叼)。 #include<stdio.h> #include<iostream> #include<string> #include<algorithm> #include<string.h>

原创 hdu1269——迷宮城堡——————【kosaraju模板】

這個算法可以解決判斷和打印各個強連通分量的問題。對於本題,只要判斷就行。 #include<stdio.h> #include<iostream> #include<vector> #include<algorithm> #include

原创 uva133--The Dole Queue

看到這個題,跟約瑟夫環感覺差不多,但是這個數據範圍比較小,可以模擬實現,我用的是循環鏈表實現的過程。中間用到了標記,因爲對於樣例10 4 3來說,就會到後邊只剩下7 10這兩個節點形成的環,但是now_n這時候指向已刪除的2節點,now_

原创 Ferguson Game

題目要求:有兩堆物品n,m>0在兩個盒子中,要求輪流操作,將一個盒子清空,將另一個盒子的物品分到清空的那個中,使得兩個盒子都不爲空,當兩個盒子中都只剩一個的時候結束。最終成功執行將兩個盒子都剩一個的人獲勝,問先手勝還是後手勝? 解題思路:

原创 SG函數

上一期的文章裏我們仔細研究了Nim遊戲,並且瞭解了找出必勝策略的方法。但如果把Nim的規則略加改變,你還能很快找出必勝策略嗎?比如說:有n堆石子,每次可以從第1堆石子裏取1顆、2顆或3顆,可以從第2堆石子裏取奇數顆,可以從第3堆及以後石子

原创 hdu1026---Ignatius and the Princess I

題目大意:解救公主,開始位置在(0,0)出口在(n-1,m-1),迷宮中有怪物,對應的數字即爲需要在此停留的時間,'.'爲可走的路,'X'爲牆不可走,問是否可以走出迷宮?如果可以,需要的最少的時間,以及走出迷宮的路徑。 解題思路:BFS+

原创 hdu2102——A計劃——————【BFS】

題目比較簡單,只是一個簡單搜索,只是添加了一點條件。傳輸機實現上下層轉移,僅僅這個條件。 #include<iostream> #include<stdio.h> #include<string.h> #include<queue> us

原创 減法博弈

題目描述:有一堆石子,每次可以從中取(1,3,4)個石子,兩人輪流取,取完最後一顆的獲勝。假如n=100,問先手贏還是後手贏?~ 解題思路:可以通過由小到大找規律,找出N和P來確定100是必敗態還是必勝態。 通過簡單的演算過程,可以發現

原创 Fibonacci Game

Fibonacci Game 1 1 2 3 5 8 13 21 34 55 89 144 題目描述:有一堆石子一共n個,兩人輪流取。(1)先手不能第一次把石子取完(2)之後的人取石子數量都要介於1~前面那個人取石子的兩倍。問先手贏還是後

原创 hdu1879——繼續暢通工程——————【kruskal模板】

以前寫過這道題不止一遍,但是再碰到這個題目的時候還是迷茫,長時間不練習這方面的題目就不會了,看來真的需要堅持碼代碼,不寫會生疏的!#include<stdio.h> #include<iostream> #include<string.h

原创 hdu5100---Chessboard

第一次做bc的比賽,感覺題目很靈活,以後儘量抽時間來做。 這道題本來認爲是遞推來做的,(感覺很對的)但是結果錯了。然後看了題解,看了題解,看了別人的博客,原來是這麼回事。 解題思路: 首先要明白,n<k時,是一個也不能完成覆蓋的(很容易

原创 hdu1253——勝利大逃亡——————【BFS】

簡單三維地圖,直接廣搜就行了。 #include<iostream> #include<queue> #include<string.h> #include<stdio.h> using namespace std; int Map[55