原创 POJ 3279 Fliptile (開關轉換)

題意:農夫約翰知道聰明的牛產奶多。於是爲了提高牛的智商他準備瞭如下游戲。有一個M×N 的格子,每個格子可以翻轉正反面,它們一面是黑色,另一面是白色。黑色的格子翻轉後就是白色,白色的格子翻轉過來則是黑色。遊戲要做的就是把所有的格子都翻轉成白

原创 POJ 3276 Face The Right Way(開關轉換)

題意: N頭牛排成了一列。每頭牛或者向前或者向後。爲了讓所有的牛都面向前,農夫約翰買了一臺自動轉向的機器。這個機器在購買時就必須設定一個數值K,機器每操作一次恰好使K頭連續的牛轉向。請求出爲了讓所有的牛都能面向前方需要的最少的操作次數M和

原创 POJ 3977 Subset (折半枚舉)

題意:讓你從n個數裏面找任意個數(>0),使他們的和的絕對值最小,輸出最小和的絕對值和最小個數。 分析:       分成兩份,分別枚舉。  #include<iostream> #include<algorithm> #inclu

原创 UVA 658 It's not a Bug, it's a Feature! (特殊圖最短路)

題意: 修補bug,會引入新的bug。n(n<=20)個bug和m(m<=100)個補丁,每個補丁用兩個長度爲n的字符串表示,每個位置表示一個bug。一串表示打補丁前的狀態(“-”表示該bug必須不存在,“+”表示必須存在,“0”表示無所

原创 HDU5855 Less Time, More profit(最大權閉合圖)

題意 N 個工廠,給出每個工廠建成所需時間t 及花費pay (可同時建)。M 個商店,在給定的幾個工廠建好的前提下,每個商店開張可以獲利pro (一次性)。求獲利L 最少需要的天數T ,以及T 天的最大獲利P 。 分析 一

原创 Codeforces 546E Soldier and Traveling (最大流+輸出流量分配方案)

題意 n 個頂點m 條邊的無向圖,每個點有ai 名士兵,每名士兵只能留在原地或移動到相鄰點,給出移動後每個頂點的士兵數 bi ,問是否存在移動方案,並輸出如何移動。 分析 很明顯的最大流問題,關鍵是如何輸出分配方案。

原创 hdu 5213(莫隊+容斥)

題意:       n個數,一個k,m個詢問,每個詢問有[l1,r1] ,[l2,r2]兩個區間,[l1,r1]中取x ,[l2,r2]中取y,使得x+y=k (l1 <= r1 < l2 <= r2) 分析:      根據容斥,F

原创 hdu 5889 Barricade (最短路+最小割)

        題意:N個點M 條路徑,每條路徑長度爲1,敵人從N節點進攻1節點。敵人只會選擇最短路徑進攻(所有最短路中的一條), 要封死所有可能的路徑。 路徑長度爲都爲1。 無向圖,每條路都有一個封死所需的花費數。 分析:      

原创 POJ 3057 Evacuation (最大流加邊)

題意:          X * Y的區域,'.'爲空格,'D'爲門,'#'爲牆,          每個空格處有一人,每個人每秒只能移動一步,          每個門每秒只允許一個人通過,           求所有人逃脫的最短時間,

原创 UVA 10779 Collectors Problem(最大流)

題意:有T(T≤20)組數據。Bob在與他的n−1(2≤n≤10)個同伴交換糖紙,一共有m(5≤m≤25)種糖紙。Bob希望能和同伴交換使得手上的糖紙數儘量多。他的同伴只會用手上的重複的交換手上沒有的,並且他的同伴們之間不會產生交換。求出

原创 LightOJ 1037 Agent 47(狀壓DP)

題意:有N個敵人,剛開始你有一把槍,每開一槍,可以對敵人造成1點傷害,你殺掉相應的敵人後,可以得到相應敵人的武器。 給你N個敵人的血量,和一個武器

原创 uva 753 A Plug for UNIX(最大流)

題意: n個插座,下面n行是每個插座的類型          m個電器,下面m行每行兩個單詞分別是電器的名字和插頭類型          k個轉換器,下面k行每行兩個單詞,分別表示轉換器的入口類型和插頭類型 每種轉換器的個數是無限

原创 LightOJ 1068 Investigation (數位DP)

題意:求出區間[A,B]內能被K整除且各位數字之和也能被K整除的數的個數。 分析:A,B最多有10位    各位數字之和不會超過90,那麼當 k >= 90時,爲0. dp[len][y1][y2]    第len位   y1這個數除k的

原创 LightOJ 1051 Good or Bad

題意:給你一個字符串,只包含大寫字母和‘?’,如果字符串中出現了連續三個以上的元音字母或者連續五個以上的輔音字母,則這個字符串是bad,不然就是good. ‘?’號可以替換任意字母,即可bad有可good,則輸出Mixed. 分析:dp

原创 CodeForces 703D Mishka and Interesting sum (樹狀數組處理異或和)

題意:求區間上出現偶數次的數 的異或和。 分析: 如果求出現奇數次的數 的異或和,則只需預處理前綴異或和,然後馬上就能求出來了。一個數異或偶數次爲0。             所以這題把問題簡單化,把偶數次變奇數次,奇數次變偶數