原创 poj2513Colored Sticks trie+merge_set+Eular
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N=250005*4; char s1[15],s2[15],
原创 hdu2112HDU Today trie+map
trie #include <iostream> #include <cstdio> #include <algorithm> #include <cstdlib> #include <queue> #include <cstring>
原创 poj3352Road Construction 邊雙連通+僞縮點
/* 對於邊雙連通分支,求法更爲簡單。只需在求出所有的橋以後,把橋邊刪除,\ 原圖變成了多個連通塊,則每個連通塊就是一個邊雙連通分支。橋不屬於任何 一個邊雙連通分支,其餘的邊和每個頂點都屬於且只屬於一個邊雙連通分支。 一個有橋的連通圖,如
原创 HDU 3555Bomb數位dp
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N=20; long long dp[N][3],a[N];
原创 hdu3853LOOPS概率dp
#include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #include <cstring> using namespace std; con
原创 poj1258Agri Net Kruskal+prim
Kruskal #include <cstdio> #include <cstring> #include <algorithm> #include <vector> using namespace std; #define N 1000
原创 hdu1874 Dijkstra(堆優化)+floyd
//感謝jianshen#include <iostream> #include <cstdio> #include <algorithm> #include <cstdlib> #include <queue> #include <cs
原创 hdu1394Minimum Inversion Number_forces(segment_tree)
//線段樹,後面有暴力解法 /*首先要知道如何求一個序列的逆序數,比如2514 : 2之前沒有數大於它,所以爲0, 5之前也沒有數大於它,所以爲0, 1之前2,5都大於它,所以爲2, 4之前只有5大於它,所以爲1, 因此2514的逆序數
原创 poj2533Longest Ordered Subsequence LIS(優化)
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N=1010; const int inf=0x3ffffff
原创 hdu1698Just a Hook segment_tree
#include <iostream> #include <cstring> #include <cstdio> #define lson l,m,rt <<1 #define rson m+1,r,rt << 1 |1 using na
原创 poj2828Buy Tickets segment_tree
//後面的點優先權高,思路詳解http://www.cnblogs.com/CheeseZH/archive/2012/04/29/2476134.html #include <iostream> #include <cstring> #
原创 2795Billboard segment_tree
#include <iostream> #include <cstdio> #include <cstring> #define lson l,m,rt<< 1 #define rson m+1,r,rt <<1 | 1 using na
原创 UVA11762 Race to 1
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N=1000005; int p[N],tmp[N],maxn
原创 HDU 2089不要62 數位dp
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N=10; int dp[N][3],a[N]; int l,
原创 poj3691DNA repair
#include <iostream> #include <cstring> #include <cstdio> #include <queue> using namespace std; const int N=1005; const