原创 Palindrome subsequence+區間dp(只有代碼)

#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; const int mod=10007;

原创 BZOJ1654 奶牛舞會+tarjan算法(入門題目)+判斷圖中有幾個環

題目大意: 判斷圖中有幾個環 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int num=10010; /**

原创 Tree Cutting POJ - 2378+Poj3107+求樹的重心

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int inf=1e8; const int num=1e4+10

原创 P2860 [USACO06JAN]冗餘路徑Redundant Paths+tarjan算法+構建全環圖

題目大意: 任意兩個點之間至少有兩條邊相連,且兩條邊沒有重合之處。 例如: 1->2->3->4; 1->2->5->4; 不滿足要求;兩條路徑中都有1->2; 解題思路: 環中的任意兩點有兩條滿足要求的路徑; 在所給圖上添加邊,

原创 樹形dp+01揹包例題

題目: 1,HDU 1011 2,HDU 1561(代碼中有核心部分的解析) //HDU 1011 #include<cstdio> #include<cstring> #include<algorithm> using nam

原创 ATM+bzoj+Trajan算法+spfa求最短路

題目鏈接 在新的bzoj平臺上,目前這道題沒有ac的人。我的代碼也卡在了12,13的樣例上,在網上找了很多的代碼,除了一位大佬(卡在12上),其餘都是卡在了12,13上。 #include<queue> #include<cstd

原创 HDU2196_Computer_求樹上的每一個點可以達到的最大距離

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int num=1e4+10; struct node {

原创 A Magic Lamp HDU - 3183

這個題方法很簡單啊,可是沒有考慮 0 1 這個例子,就wr了整整一下午 寫個博客紀念一下 /* 線段樹維護區間最小值 貪心:每次找可行區域的最小值 */ #include<cstdio> #include<cstring> #in

原创 Pebbles HDU - 2167

//無優化,時間:748ms //優化後:78ms #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int st[16][1<

原创 楊輝三角形中的祕密

1,楊輝三角形的第i列滿足:(i>=0) C(0,i) C(1,i) … C(i,i) 即是一組全排列公式。 2,第i行奇數的個數等於將i分解成二進制數之後,統計這個二進制數裏面有幾個1,奇數的個數爲2^k,k爲二進制數中1的個數

原创 Poj3140求樹重心

//編譯錯了兩次,原因: abs(a),a不能是LL類型 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef lo

原创 HDU2422_考研路茫茫——空調教室_Tarjan縮點+樹形dp/判斷聯通塊數量

考研路茫茫——空調教室的題目鏈接 題目數據: N和M(0<N<=10000,0<M<20000) 一開始以爲是樹的重心,結果一直提示超內存,後來看了看題,發現不對,m>n-1啊,不可能是樹; 肯定有環; 但是我們破壞環中的任意一條

原创 受歡迎的牛+Trajan縮點+樹形dp

題目鏈接: 題目解析: 題目數據:100%的數據N<=10000,M<=50000; 顯然這個圖裏面會有環,而我們可以做的是:判斷這個點是否是其它點的子節點; 因此:要把這個圖轉化爲樹; 用到Trajan算法; 在這道題中:可能會

原创 Halloween Costumes LightOJ - 1422(只有代碼)

dp[i][j]表示第i天到第j天達到的最小值; 因爲前面某一天的選擇對後面會造成影響,對於這樣的問題,我們從後往前dp; 轉移方程: (1) 第i天和[i+1,j]天裏的衣服都不同,dp[i][j]=dp[i+1][j]+1;

原创 Travelling+HDU3001+狀壓dp+旅行商問題

題目鏈接 題目大意: n個點,m條耗時無向路,問:任意取一點作爲起點,最多經過一個點兩次,遍歷所有的點,需要的最短的時間。 數據大小:n<=10; 解題方法:狀態dp 每個點會經過0,1,2次,是隻能經過一次的旅行商問題的升級版