原创 tarjan算法(邊的雙連通分量)

hiho鏈接:http://hihocoder.com/contest/hiho53/problem/1 邊的雙連通分量定義:對於一個無向圖的子圖,當刪除其中任意一條邊後,不改變圖內點的連通性,這樣的子圖叫做邊的雙連通子圖。而當子圖的邊

原创 CF 514C hash,字典樹

題目鏈接:http://codeforces.com/problemset/problem/514/C 比較少碰到hash的題目,這個題目記錄一下可以作爲練手用。 題意:給你n個字符串作爲母串,m個字符串作爲字串,其中(0 <= n,

原创 HDU5517 瀋陽現場賽 二維樹狀數組

/* 爲b弄一個數組,存放最大的a的個數, vec[i]來存放a,c,d中的c,d以及a,c,d這個元素的元素 然後從大到小枚舉a(從小到大好像不可以,因爲不知道是上一次a在二維樹狀中在x,y這個點放了一次還是當前枚舉的a在x,y這個點放

原创 dfs序基本類型總結

大致看了下dfs序的題型,大致清楚了大致的解題思路。。。但是對於一些題目還是比較無力。。。。 dfs序比較重要的性質:一棵子樹的所有節點在dfs序裏是連續一段,主要就是利用這個性質來解題 題型一:對某個點X權值加上一個數W,查詢某個子樹

原创 CF 552E 暴力

題目鏈接:http://codeforces.com/problemset/problem/552/E 思路:觀察一下就可以看出如果要加括號的話,那麼這個括號一定是加在兩個乘號之間的,題目上說乘號不超過15個,那麼暴力枚舉兩個乘號模擬一

原创 中國剩餘定理

中國剩餘定理(CRT)的表述如下   設正整數兩兩互素,則同餘方程組                                   有整數解。並且在模下的解是唯一的,解爲                      

原创 KMP算法

<pre name="code" class="cpp">/* 這是對失配函數沒有優化的MP算法,最壞情況下也能達到O(m + n)的複雜度, 其中m爲模板串長度,n爲文本串長度. 此算法還可以計算模板串在文本中出現的次數(可重疊) */

原创 CF 589F 網絡流(or貪心?)

題目鏈接:http://codeforces.com/problemset/problem/589/F 題意:有n盆菜,每個菜的上菜時間是ai-bi,要求每盆菜的品嚐時間都相同,求最大的品嚐時間。 思路:一開始也想到了網絡流,但是沒有

原创 CF 593D LCA,貪心

題目鏈接:http://codeforces.com/problemset/problem/593/D 題意:給你一個含有n個點的樹(2<=n<=200000),每個邊有權值xi(1<=xi<=10^18),有m個詢問(1<=m<=20

原创 在線LCA算法

#include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define FOR(i,a,b) for(int i = a;i <= b;i++) using names

原创 組合數中的Lucas定理

和,並且是素數,這個問題有個叫做Lucas的定理,定理描述是,如果   一般地,如果要求C(m,n) % M,其中M由n個不相同的質數p1 * p2 * p3 *.....* pn(pi <= 10^5)得來,那麼可以先

原创 CF 589G 樹狀數組

題目鏈接:http://codeforces.com/contest/589/problem/G 好久沒做過樹狀數組的了,也應該開始練練數據結構了 題意:給你m個工作日,每個工作日有工作時間,給你n個員工,每個員工每天工作有準備工作時間

原创 白書幾何模板

/* 白書幾何模板 */ const double eps = 1e-10; struct Point{ double x,y;//點的座標類型自己定 Point(double x = 0,double y = 0):x(x),y(y

原创 CF 553B 構造

題目鏈接:http://codeforces.com/problemset/problem/553/B 思路:方法較無腦,直接手動寫幾個式子,發現之可能兩個相鄰的數字交換,且交換的數字不能重疊。知道這個後,稍微想一下如果在當前串再加入數

原创 FOJ 2204 dp

題目鏈接:http://acm.fzu.edu.cn/problem.php?pid=2204 我次奧。。。dp渣的要吐血了,這題想了挺久。。。 題意:給出n(0 <= n <= 10^5)個球,每個球可以是黑色或者白色,求所有的塗色