原创 HDU 4734

比賽的時候先寫了個裸的數位dp T掉了,然後加加剪枝過了 #include <cstdio> #include <cstring> using namespace std; int len,lim; int num[20],mi[20

原创 HDU 4628

這是一個大水題啊。。。 因爲比賽時不會算複雜度耽誤半天。 i從0到2^n枚舉集合i的所有分割兩半的情況的複雜度爲O(3^n),可以想象這個過程相當於是給每個位標記0,1,2(0表示不選,1,2表示兩個集合) #include <cstdi

原创 對差分約束問題的理解

首先討論這種標準形式的問題 X1 - X2 <= 0 X1 - X5 <= -1 X2 - X5 <= 1 X3 - X1 <= 5 X4 - X1 <= 4 X4 - X3 <= -1 X5 - X3 <= -3 X5 - X4 <=

原创 關於約數,素因數的妙用

http://codeforces.com/problemset/problem/359/D http://codeforces.com/problemset/problem/265/D http://acm.hdu.edu.cn/sho

原创 點雙聯通

模板 #include <cstdio> #include <cstring> #include <vector> #include <stack> #include <algorithm> #define N 2000 //注意縮

原创 UVALive - 6151

本題要求圖裏的最小環。 n遍bfs,每一遍dfs求出包含某一頂點的所有環,這個dfs做不到,我卡了好久。 #include <cstdio> #include <cstring> #include <algorithm> #includ

原创 HDU 4757

可持久化trie樹。不會可持久化數據結構的話推薦先看陳立傑的論文。先掌握可持久化線段樹和可持久化trie樹。 //可持久化trie樹,題目已知一棵樹,每個點有點權,詢問一對點路徑上點權與給定值異或的最大值 #pragma comment

原创 再見了acm

2013年11月17日長沙區域賽我的最後一場區域賽。 忙碌了三年的acm要停下腳步,一時還無法接受。 這樣一個結果有點無奈。 感謝隊友,三年三支隊伍五個隊友,感謝你們。(寫到這裏時就總有點小忍不住) 以後還有很長的路,還有更多的挑戰要面對

原创 HDU 4756 && HDU 4126

兩個題次小生成樹的擴展題。 先prim求出最小生成樹,枚舉刪除每條樹邊後求分割成的兩部分之間的最小連接費用,這一步用一個O(n^2)的n遍dfs求解。 不過HDU 4756這個題我被sqrt函數卡死,之前的寫法HDU被卡爆棧,給sqrt傳

原创 POJ 2152

陳啓峯的論文題 這個樹形dp還是比較難的,沒有想到。 dp[i][j]表示以i爲根的子樹,i結點選j爲負責站,所花的最少代價。 best[i]=min{dp[i][j] | 1<=j<=n}當dis[i][j]>limit[i],dp[i

原创 分數與小數的相互轉換

小數轉化爲分數   題目:http://acm.hdu.edu.cn/showproblem.php?pid=1717   題意:把小數轉化爲分數,循環部分用()表示。 void Work(char str[]) {

原创 URAL 1992

可持久化鏈表 #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #define N 500010 using namespace st

原创 極大極小搜索+alpha_beta剪枝)

http://poj.org/problem?id=1085 狀態dp搜索 #include <cstdio> #include <cstring> #include <algorithm> #include <vector> usin

原创 計算機中數的表示與存儲

        原碼:將一個整數,轉換成二進制,就是其原碼。如單字節的5的原碼爲:0000 0101;-5的原碼爲1000 0101。   反碼:正數的反碼就是其原碼;負數的反碼是將原碼中,除符號位以外,每一位取反。如單字節的5的反碼爲:

原创 HDU 4630、BOJ 某題

兩道離線線段樹。 比賽時候沒想到。。。。 掃描數組,i從1到n,線段樹維護從1到i每一個約數(1~50000)的出現的最近位置,線段樹存儲的是約數的最大值 #include<cstdio> #include<cstring> #incl