原创 最大流EK和Dinic算法

最大流EK和Dinic算法 EK算法 最樸素的求最大流的算法。 做法:不停的尋找增廣路,直到找不到爲止 代碼如下: @Frosero #include <cstdio> #include <iostream> #include

原创 java在acm中常用基礎技巧方法

java在acm中常用基礎技巧方法 如果學到了新的技巧,本博客會更新~ input input-std @Frosero import java.util.*; public class Main { static S

原创 RMQ區間求最值

RMQ用於區間快速查找最值,適用於期間數值無更改的情況。其預處理的複雜度爲O(nlogn),查詢的時間複雜度爲O(1),對比於線段樹的預處理O(nlogn),查詢O(logn)來說,在某些情況下有着其獨到的優勢。 RMQ原理就是在原來的

原创 tarjan求強聯通分量

tarjan求強聯通分量 變量含義說明: pre[i]:i點的被訪問的時鐘編號,被分配後保持不變 low[i]:i點能訪問的最先的點的時鐘編號,隨子節點改變 scc_no[i]:i點所在的強聯通分量的編號 dfs_clock:時鐘

原创 三維凸包大全

忘記了是哪個大神寫的了。不過絕對經典, 再此表達膜拜之情!!! 有此模板幾乎大部分三維凸包都可以搞了。 #include <iostream> #include <cmath> #include <cstring> #include <

原创 FFT快速傅里葉模板

FFT快速傅里葉模板…… /* use way: assign : h(x) = f(x) * g(x) f(x):len1 g(x):len2 1. len = 1; while(len < 2 * len1 || l

原创 Gym 100431E Word Cover 題解:KMP上跑dp

題意: 給你一個串,問你他的每個前綴的最小重複單元,其中單元是可以重疊的,最後按順序輸出即可。比如樣例中abaabaa的最小重複單元爲abaa,所以相應輸出爲4。 樣例: input : abaabaababa output:1

原创 自適應辛普森公式求積分

自適應辛普森公式求積分 假設我們求以下積分: ∫baf(x)dx 比較特殊的情況,就是可以推導出來最後的形式。但是比較一般的情況是,我們只能大致得到一個XY 座標系裏的曲線,我們求的就是曲線和X 軸所圍成的面積。 因此我們有自

原创 歐拉路徑與歐拉回路

歐拉路徑與歐拉回路 感覺這一塊網上說的有點亂,很多東西都沒有說清楚,或者都缺一些東西,所以在這裏打算好好的總結與歸納一下關於歐拉路徑與歐拉回路的問題。 概念 歐拉路徑:從某一起點開始,可以沿某路徑遍歷圖中每一條邊一次且僅一次,則稱

原创 最長上升子序列(LIS)問題

最長上升子序列(LIS)問題 此處我們只討論嚴格單調遞增的子序列求法。 前面O(n2) 的算法我們省略掉,直接進入O(nlgn) 算法。 方法一:dp + 樹狀數組 定義dp[i]:末尾數字是i時最長上升子序列 轉移方程:dp[

原创 A*啓發式搜索基礎

A*啓發式搜索基礎 傳統的搜索方式是盲目搜索,即到每一步的時候並沒有對每種情況進行有效的區分,這樣的結果是浪費了大量的時間,對很多沒有必要的數據進行了搜索。 而A*算法則在搜索的過程中會選取認爲“最優”的狀態進行搜索,而這正是這

原创 HDU 4279 Number 坑爹的迷之精度

題目描述 首先定義"special number": 如果對於一個數字B,存在一個數字A(0<A<=B),並同時滿足 B%A=0 和 gcd(A,B) != 1 ,那麼我們就說A是B的"special number"。

原创 阿里面試雜談

阿里面試雜談 從一個月前的偶然發現阿里在招實習生,然後抱着玩一下的心態投了簡歷,然後竟然被通知參加筆試,直到現在已經經過了一輪面試,感覺世事真是難料。 這算是我人生中第一次正式的面試經歷吧,回來以後就感覺心裏有些壓抑,所以就趁現在

原创 調用JavaScript實現字符串計算器

調用JavaScript實現字符串計算器   如果表達式是字符串的形式,那麼一般我們求值都會遇到很大的問題。   這裏有一種直接調用JavaScript的方法來返回數值,無疑神器。 代碼如下: @Frosero package

原创 後綴數組模板

後綴數組的模板,這樣說明就很詳細了吧! /* * 後綴數組模板-倍增法 * 使用方法: * 1、讀取字符串轉換成int數組,長度爲len,下標從0開始 * 2、在字符串末尾加一字典序最小字符,一般爲0,並找到最大的字符設爲