原创 P3376 【模板】網絡最大流(Dinic模板)

最大流目前瞭解兩種算法,一個是ek(n * m2),一個是dinic(n2 * m)。dinic算得上是ek的升級版。 對於最大流算法,網上有很多優秀的解釋,這裏就說自己做題的過程中遇到的一些問題。 在實際運用中,dinic有很多小優化。有

原创 Codeforces-1382C2-Prefix Flip (Hard Version)

兩種解法,第一種是從前往後再從後往前,兩次for循環。 第二種是從後往前匹配,一次循環。 最後時間第一種是46ms,第二種是46ms或者31ms?,空間都是800kb,但第一種理解與實現起來相對簡單。 爲了方便說明,初始字符串稱爲s,目標字

原创 藍橋杯-2014-B組-10-小朋友排隊(拓展樹狀數組模板)

使用到了普通的樹狀數組和拓展的樹狀數組。 普通的只能單點修改和區間查詢,利用兩次區間查詢可以做到單點查詢。如果要區間修改時間複雜度是O(n)。 拓展樹狀數組可以區間修改和區間查詢,利用兩次區間操作即可實現單點操作,但增加了一個額外的數組。

原创 POJ-1990-MooFest(樹狀數組)

線段樹題目 暴力做法 直接暴力求解,依次算距離和最大v。 時間複雜度 時間複雜度爲O(n2) 其中佔時間最多的乘法次數是 n*(n-1)/2,時間複雜度是O(n2)。 #pragma warning(disable:4996) #inclu

原创 HDU-1711-Number Sequence(kmp模板)

這是一道kmp模板題。 #pragma warning(disable:4996) #include <stdio.h> int main(void) { // freopen("q.txt", "r", stdin);

原创 攻防世界 no-strings-attached(Reverse新手練習區) 解題概要 解題過程

解題概要 使用pe分析是32位文件,使用ida反彙編分析代碼邏輯,是一道要求用戶輸入flag,然後比較的題目。 正確flag並不是明文存儲,所以解題關鍵爲分析構造flag的函數。 需注意的是使用wchar_t,分析可得是32bit長(搜索得

原创 攻防世界 Normal RSA(Crypto新手練習區) 已知信息 解題思路 準備工作 具體步驟

已知信息 下載壓縮包,包含一個flag.enc和pubkey.pem flag.enc裏面的即是密文 pubkey.pem裏面的是n(模數)和e(公鑰) 解題思路 解析pubkey.pem文件,得到n和e 質因數分解n,得到p(質因數)和

原创 圖論小結(三)-剪

BFS 優化: 雙向BFS注意點: 每輪遍歷整層; 每輪選取已搜索點數少的一邊搜一層; DFS 優化: 剪枝 這裏以洛谷的p1731生日蛋糕爲例 題目背景 7月17日是Mr.W的生日,ACM-THU爲此要製作一個體積爲Nπ的M層生日蛋糕

原创 散列表、哈希

Hash,一般翻譯做"散列",也有直接音譯爲"哈希"的,就是把任意長度的輸入(又叫做預映射, pre-image),通過散列算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠小於輸入的空間,不同

原创 c#與objective-c

C#是微軟推出的一種基於.NET框架的、面向對象的高級編程語言。C#以.NET框架類庫作爲基礎,擁有類似Visual Basic的快速開發能力。C#由安德斯·海爾斯伯格主持開發,微軟在2000年發佈了這種語言,希望藉助這種語言來取代Java

原创 算法導論答題筆記_0x2

題目的回答會整理並在gayhub更新 期待在評論區討論問題 1.2-3 原題: n的最小值爲何值時,運行時間爲100n2的一個算法在相同機器上快於運行時間爲2n的另一個算法? 回答: 函數圖像 函數圖像 藍色的是1

原创 設計模式3-9:空對象模式

What 在空對象模式(Null Object Pattern)中,一個空對象取代 NULL 對象實例的檢查。Null 對象不是檢查空值,而是反應一個不做任何動作的關係。這樣的 Null 對象也可以在數據不可用的時候提供默認的行爲。 在空對

原创 設計模式3-8:狀態模式

What 在狀態模式(State Pattern)中,類的行爲是基於它的狀態改變的。 在狀態模式中,我們創建表示各種狀態的對象和一個行爲隨着狀態對象改變而改變的 context 對象。 允許對象在內部狀態發生改變時改變它的行爲,對象看起來好

原创 算法導論答題筆記_0x1

題目的回答會整理並在gayhub更新 期待在評論區討論問題 1.1-5 原題: 提供一個現實生活的問題,其中只有最佳解才行。然後提供一個問題,其中近似最佳的一個解也足夠好。 回答: 最佳解唯一問題最簡單的就是找第一名,必須要滿足條件最優

原创 算法導論答題筆記_0x0

第1章 練習與思考題 練習1.1 1.1-1(開放問題) 原題: 給出生活中一個需要排序的例子或者現實生活中需要計算凸殼的一個例子。 回答: 考試成績需要排序得到排名; 計算光線反射的時候需要計算凸殼。 1.1-2(開放問題) 原題: 除速