原创 BSGS(baby step gaint step)+快速冪+exgcd逆元

一個神奇的算法, 快速求出 A^x=B(mod C),C是素數,求最小的非負x值 若x有解,那麼 0<=x < C, 爲什麼? 由費馬小定理可以得a^(c-1) = 1(mod c) 那麼0~c-1必定是一個循環節(不一定是最

原创 noip2013day2T3華容道

這道題,寫的很醉啊。。。。 這種搜索的題,還帶一點DP,各種bug調了好久, 思路: 60分做法就直接bfs亂搞,60分到手; ac套路: 首先預處理出f[i][j][k]狀態,對於點ij,空格在k方向就是開個【30】【30】【4】的數組

原创 Manacher O(n) 迴文字符串查找算法

雖然在題目中, 這類算法出現得比較少, 但其效率的確很好並且不是很難懂, 所以學一下也總有用得到的時候; 下面是一篇不錯的博客, 推薦; http://www.open-open.com/lib/view/open141915

原创 BZOJ 物流運輸

一個神奇的dp,,爲數不多自己搞出來的dp。。。。 其實可以發現對於這個題, 單純的最短路亂搞是錯誤的 那麼,,,,dp 我們可以用cost[i][j] 表示從第i天到第j天的不換路花費, 當然算的時候保證這條路在i到j天

原创 UVA-Knights of the Round Table La3523

圓桌騎士; 分析:如果兩個騎士沒仇, 那就連一條邊, 這樣得到一個圖G, 那麼問題就轉化成了求G中的不在任何一個簡單奇圈上的點的個數, 我們可以求出在的個數再做減 又因爲簡單奇圈上的所有節點必定屬於同一個雙連通分量, 並且二分圖沒有奇圈,

原创 POJ 2763 LCA+BIT

顯然這個題是個好題,  需要修改邊利用,前綴和思想動態維護, 每次查詢u到v的距離 記下每個點(u)第一次在dfs出現及最後回來的位置, strart和finish 那麼u連向其父親的邊在被修改是影響的只是start【u】和

原创 POJ 3728 tarjan+DP

從這個好題我終於去學了學Tarjan, 因爲發現ST毫無意義, 除了預處理, 其他還是要借鑑Tarjan; Tarjan其實很簡單, 其實就是對於詢問也開一個鄰接表, 兩個點的LCA就是: 如果在訪問u的時候發現v已經訪問過了

原创 POJ 3255 A* k_th path

就是裸的求次短路,可以用k短路試試手 A*算法的估價函數可表示爲: f’(n) = g’(n) + h’(n) 其中f(n) 是節點n的估價函數,g(n)是在狀態空間中從初始節點到n節點的實際代價,h(n)是從n到目

原创 POJ 1639度限制生成樹

題目就是給出一些英文名稱, 並且要求源點爲park的入度不能超過k 給出思路: 1.首先抹去park, 在剩下的連通分量中求出最小生成樹加入答案, 此時的度是最小的, 即如果現在的度大於k, 則無解(題目好像沒這個情況) 2

原创 LG的數學計劃----EXGCD

拖延了好久了, 多重要的一章, 馬上寫, 不能再拖了, 寫完了去寫作業 首先介紹一下歐幾里得算法 gcd(a,b)=gcd(b,amodb) 內容很簡單, 關於此定理的算法也稱輾轉相乘法, 且gcd(a, b) = gcd(

原创 2013年noip第三題貨車運輸truck(樹鏈剖分LCA+最大生成樹)

寫這個題的時候,其實已經手擼出LCA——樹鏈剖分算法, 下面給出一段我的LCAn模板,說真的真的很好寫不能更好寫了,大家可以看看別的算法再來看我的實現,個人覺得寫的還不錯(一定要先有了解不然可能看不懂) int dis[maxn], h

原创 UVA-The Largest Clique 11324

最大團, problem:給一個有向圖G, 求一個節點數最大的點集, 使得該點集中的任意兩個節點至少要有一條路徑 -> 那麼可知, G中的SCC要麼都選, 要麼都不選(不選是因爲這是有向圖選了之後的無法納入範圍), 那麼問題就簡單了 將每

原创 HNOI 2002 營業額統計(Splay入門)

第一次寫splay。。 首先你必須要明確一些事情 -> 堅信splay不難, 好吧, 下面推薦一篇博客, 作爲入門, 之後再做一下這道題(其實並不需要splay), 就可以開始splay之路了 這道題沒什麼好解釋, 裸題, 中文的, 不需

原创 UVA-Proving Equivalences La 4287

題目很好懂, 講下思路; 把每個命題看成節點, 推導視爲有向邊, 得到一個有向圖G, 那麼題意就是如何添加邊, 使G強連通(每個點都能互相到達), 把G中的強連通分量找出後, 縮成一個點使G變成一個DAG, 接下來設這個DAG上有a個節點

原创 LG的數學計劃之素數測試(Miller Rabin算法)

我們知道對於素數的一些處理方法, 1.暴枚求質因數, 效率比較。。。。不排除大力出奇跡的情況 代碼簡單這裏不給出 2.素數篩選法, 這個算法比起第一種效率好多了, 是許多題都會考察到的, 算法的思想是枚舉每一種可能的質因數,