原创 [NOIP 2011] Mayan遊戲:搜索,模擬

題意:尋找一個用n步(0<n<=5)完成5*7的Mayan遊戲的字典序最小的方案。 每個方塊可以左移、右移,至多5步,共有少於5.6億個可能的情形。3秒內搜一搜是可行的。 怎樣消除方塊呢?由於要求一次性消完所有能消的方塊,而且橫、

原创 [bzoj 1026] [SCOI2009]windy數:數位DP

題意:區間[a, b]裏有多少個不含前導0的十進制整數任意相鄰兩位之差的絕對值不小於2?(1<=a<=b<=2,000,000,000,a, b是整數) 前幾天做XJOI模擬賽中有關字典序的一道題,發現可以按照某種順序從高位向低位

原创 [bzoj3680] 吊打XXX:模擬退火 or 模擬力學情景

題意:n個(n<=10000)質量分別爲mi 的質點的座標分別爲(xi,yi) (數據均爲整數),每個重物連着一根繩子,所有繩子有一個公共的繩結,繩結只能在一個與地面平行的平面上移動,質點不會落地,求繩結最終停留的座標,保留小數點

原创 [IOI 1998] Camelot:最短路

題意:8*8的棋盤上有一個王和0或多個騎士,騎士走日,王上下左右斜,王和騎士相遇後可以騎騎士的馬,此後步數不再單獨計算。求王、所有騎士彙集在一點的最小總步數。 USACO Training上有強化版,棋盤變爲最大26*40。原題可

原创 [NOIP 2011] 聰明的質檢員:二分,前綴和

題意:給一個含n(n<=200000)塊礦石的序列,每塊礦石有重量和價值。有m(m<=200000)個區間,對於某個w,每個區間的檢驗值爲重量不小於w的礦石數量乘這些礦石的價值之和。總的檢驗值爲各區間檢驗值之和。求檢驗值與標準值S

原创 [NOIP 2005] 篝火晚會:大膽猜想,小心求證

題意:N(N<=50000)個數1, 2, …, N圍成一個圈,每次可以指定m個數<b1, b2, ..., bm>,把b1放到b2的位置,把b2放到b3的位置,……把bm放到b1的位置,代價爲m。要求每個數和指定的兩個數相鄰,求

原创 [NOIP 2007] 矩陣取數遊戲:DP,高精度

題意:n*m(n, m<=80)的矩陣,每次從各行首或尾取一個數,獲得分值Sigma 數值*2^i,i是取數次數,從1算起。 決策:從行首或行尾取一個數。各行之間獨立,每行單獨考慮,可以用DP解決。 整個程序DP就幾行,高精度代碼

原创 [CodeVS 2185] 最長公共上升子序列:DP

題意:求兩個序列的最長公共嚴格上升子序列的長度。 NOI 題庫裏有這道題,序列長度<=500。容易想到一個O(n3) 的做法:設f[i][j]爲a[0..i]、b[0..j]以i、j結尾的最長公共嚴格上升子序列的長度,同時維護g[

原创 [NOI 2001] 炮兵陣地:狀壓DP

題意:在一個N*M的矩陣中的空地放兩兩不能相互攻擊的炮兵,兩個炮兵能相互攻擊當且僅當它們在同行或同列且距離小於等於2,求最多能擺多少。(N<=100,M<=10) 據說是狀壓DP經典題。由於一行至多有10列,所以不妨以兩行爲狀態。

原创 [poj 1901] Hypertransmission:掃描法,適度暴力

題意:空間中有n個整點(1<=n<=1000),點分爲兩類,如果以某點爲球心,R爲半徑,球面及球內與它不同類的點多於與它同類的點,那麼稱該點是不穩定的。同類點包括自己。問至多有多少個點是不穩定的,不穩定點最多時R的最小值是多少。

原创 [bzoj 1226] [SDOI2009]學校食堂Dining:狀態壓縮的奧妙

題意:N個人(N<=1000)排隊吃飯,第i個人允許第i+1~i+b[i]個人先吃(0<=b[i]<=7),每個人有口味t[i],做每個人的菜的時間是他的口味和所做的上一個人的菜的口味的函數,不計算第一個人的時間,求最小總時間。

原创 Floyd判圈算法及其證明

Floyd判圈算法(龜兔賽跑算法)可用於判定鏈表、迭代函數、有限狀態機是否有環。如果有環,可以找出環的起點和大小。 首先,讓我們確認一個事實:兩個人在環形跑道上同向而行,一前一後,速度不等,則快的那個一定能追上慢的那個。 設兩人

原创 [bzoj 1833] [ZJOI2010]count 數字計數:數位DP

題意:求[a, b]之間的所有整數中各個數碼出現了多少次。(1<=a<=b<=10^12,a, b是整數) 考慮[1, x)內各個數碼出現了多少次。設f[i][j][k]爲以j開頭的(i+1)位十進制串中k出現的次數,遞推。 [

原创 [hihoCoder 1190] 連通性·四:點-雙連通分量

題意:求點-雙連通分量,輸出每條邊所在雙連通分量中邊的最小編號。 先前AC了,修改了一個地方,WA。本地對拍,段錯誤。以爲是dfs爆棧,結果是數組越界……那之前是怎麼AC的呢?修正了數組的越界,就AC了。 驗證了我的理解:pre[

原创 [NOIP 2003] 傳染病控制:創造性地DFS,最優性剪枝

題意:給出一些關係,表示A能把病傳染給B,這些關係形成樹,每個週期疾病向下傳染一層。每個週期開始的時候可以切斷一個傳染,初始只有1號帶病,求最少患病的人數。1<=人數<=300。 開始想貪心或DP,無果,CS告訴我們這道題可以搜索