原创 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