原创 hdu 2825 AC自動機+狀壓dp

Wireless Password 題意:給m個串(m<=10),求長度爲n且至少含k個可重疊給定串的串的數目。AC自動機+狀壓dp,i爲串長,j爲二進制狀態,表示當前包含哪些串,k爲trie樹上一節點編號。 #include <ios

原创 解同餘式

#include <iostream> #include <cstdio> using namespace std; #define MP make_pair pair<int,pair<int,int> > func1(int a,

原创 LCA(最近公共祖先)

hdu 2586 大意爲給一個正邊權的樹,查詢兩點間距離。做法爲,求出任意一點到根的距離,任意兩點距離就是這兩點到根的距離和減去二倍LCA到根距離。 Tarjan(離線)O(n)-O(1) 思想:在dfs的過程中將已被遍歷過的子樹(包

原创 SBT(Size balanced tree)

http://www.docin.com/p-47348009.html#

原创 歐拉回路

一、有歐拉通路的條件: 無向圖:圖聯通,最多除兩點外所有點度爲偶數,奇數度的兩點分別爲起點和終點。      有向圖:基圖(原圖不考慮邊的方向)聯通,最多除兩點外所有點入度等於出度,該兩點,一點入度比出度大一,一點出度比入度大一。 二、生

原创 二分圖匹配算法彙總

常見的二分圖匹配算法有匈牙利算法和Hopcroft_Karp算法。其實不僅二分圖,即使是有奇環的圖以可以用這些算法尋找匹配(邊獨立集),因爲它們都是尋找增廣路(交錯軌)的算法,而圖中沒有增廣路是得到最大匹配的充要條件(這點還不理解)。 二

原创 求1到n關於p逆元(轉)

求1到n關於p逆元 的新方法 說是新方法。。可能只是我沒見過,(肯定比jzp論文裏的簡單)。。。 神犇輕D。   求出1 到n的階乘mod p 存爲f 求出f[i]的逆元 v[i] 然後i的逆元就是

原创 hdu 3722 最大權匹配

空佔位置 待補完

原创 POJ 1635 Subway tree systems

有關樹的同構問題。基本思想是通過樹的遍歷結果獲得樹的一種唯一表示,所以要確定子樹的相對順序。一開始想通過子樹大小來確定,但同大小的子樹就沒法確定順序了。而題目實際上給出了樹的一種表示方法,一種基於字符串的表示方法,自然可以通過字典序確定唯

原创 hdu 3926 特殊同構圖+並查集

關鍵是注意到,每個點的度至多爲2,所以整個圖是由一些獨立的鏈和環構成的。然後統計某種鏈或是環的個數,如果同種鏈或環的數目相同,則是同構圖。 #include <iostream> #include <cstdio> #include <

原创 最小割唯一性判定

zoj 2587 最小割唯一僅當圖中每一個點在殘留網絡中或者可達匯點或者由源點可達 必要性顯然:如果有一點,使源點不可達之,亦不能達匯點。則該點可劃分至匯點集合也可劃分至源點集合。最小割不唯一 充分性:有待研究

原创 伸展樹(Splay tree)

(轉)伸展樹 ( Splay tree ) MiYu原創, 轉帖請註明 : 轉載自 ______________白白の屋       伸展樹(Splay Tree)是AVL樹不錯的替代,它有以下幾個特點: (1)它是二叉查找樹的

原创 區間元素可變(添加與刪除)的第求k大數和給定數的排名問題

思想來源於張昆瑋的《統計的力量》 劃分樹只能在靜態區間上求第k大數和給定數的排名 基於字母數的動態性和數值大小的字典有序性,只要在其結點上存以當前節點結尾的串(數的二進制形式)的數目,和以該串爲前綴的串的數目,便可在位模式長度時間內進行元

原创 POJ 1015 Jury Compromise ---- DP

把p-d作爲約束,p+d最大作爲優化目標。 倒序枚舉m以在空間上壓縮掉n。普遍流傳的解法恐怕根本就不是dp,也無法證明正確性,否則0/1揹包就多了一種從未有過的解法。而且其記錄路徑的做法我也覺得是錯的,我用的是更保守的做法,用一個三維數組

原创 RMQ——ST算法

template<typename T> class RMQ { T **f; int n1; int n2; bool (*cmp)(const T &a,const T &b); bool compare(cons