原创 poj1417 true liars(並查集 + DP)詳解

這個題做了兩天了。首先用並查集分類是明白的, 不過判斷是否情況唯一剛開始用的是搜索。總是超時。 後來看別人的結題報告, 才恍然大悟判斷唯一得用DP. 題目大意:題目大意: 一共有p1+p2個人,分成兩組,一組p1個,一組p2個

原创 hiho拓撲排序專題 ——第四十八、四十七週

拓撲排序·一 分析: 此題就是求一個有向圖中是否存在環。 如存在環則輸出”Wrong”, 若不存在環, 說明課程安排的合理,輸出”Correct”。 題中的提示說的已經十分清楚了。 總的來說就是: ① 找出入度爲0的點(

原创 nyoj304 節能 動態規劃

這個題自己琢磨了好久,也沒想出狀態轉移方程,一經提醒才大悟啊! 這是個區間型DP,先開門見山看一下怎樣存狀態的吧:d[i][j][0] 所存的狀態是在i到j這個區間所有燈已關閉,並且機器人位於i點時所消耗的最小功率。 d[i]

原创 並查集 poj1308 hd1272

poj1308 題目鏈接 題目大意:輸入若干組測試數據,輸入 (-1 -1) 時輸入結束。每組測試數據以輸入(0 0)爲結束標誌。然後根據所給的所有(父親, 孩子)數據對判斷 是否能構成一棵樹。 分析:  都以瞭解樹只有一個根

原创 poj2337

poj2337 題目鏈接(歐拉路徑) 這道題昨天晚上開始做,今天才A。但是問題想透了, 發現其實沒那麼難 題目大意: 給你一些單詞,如果一個單詞的末尾字符與另一個單詞首字符相同,則兩個的單詞可以連接。問是否可以把所有單詞連接

原创 nyoj712 雙程動態規劃

探尋寶藏這裏寫鏈接內容 題意很清晰啦,一個機器人從(1,1)點出發到(m,n)點,再從(m,n)點回到最初點。我們可以把它看成在(1,1)點同時有兩個機器人出發到(m,n)點。 我開始做的是四維的。f[i][j][x][y]表示

原创 2015編程之美資格賽 迴文子序列個數

時間限制:2000ms 單點時限:1000ms 內存限制:256MB 描述 給定字符串,求它的迴文子序列個數。迴文子序列反轉字符順序後仍然與原序列相同。例如字符串aba中,迴文子序列爲”a”, “a”, “aa”, “b”

原创 nyoj349 poj1094 Sorting It All Out(拓撲排序)

nyoj349題目鏈接 poj1094題目鏈接 這兩個題是一樣的,不過在poj上A了纔算真的過,ny上數據有一點弱。 題目大意輸入n,m。 一共有n個字母(從A開始), m行語句每個語句“x﹤y”,說明x,y之間的偏序關係。讓

原创 hdoj1325 Is It A Tree?

hdoj1325 題目鏈接 題意: 多組測試數據, 每組數據有多個數對, 表示一條有向邊(即第一個數是第二個數的父節點), 以 0,0 爲一組測試數據結束標誌。當輸入-1,-1時測試結束。 從那些給出的信息中判斷是否是一棵樹。

原创 nyoj914Yougth的最大化(二分搜索 + 貪心)

Yougth的最大化 時間限制:1000 ms | 內存限制:65535 KB 難度:4 描述 Yougth現在有n個物品的重量和價值分別是Wi和Vi,你能幫他從中選出k個物品使得單位重量的價值最大嗎? 輸入 有多組

原创 狀態壓縮DP (poj 3254, poj 1185, nyoj 81)

狀態壓縮DP, 一上來就卡了我好久。。。。。 poj3254應該是狀態壓縮裏最經典(簡單)得了吧 大意:就是在一塊地圖裏種草, 左右不能相鄰,上下也不能相鄰,  問一共有多少種種法(什麼不種也算一種)。 分析:M(<=12)行N(<=12

原创 zoj3326 An Awful Problem

題目大意:求規定時間範圍內,月和日(例如:2月3號)都爲素數的日期一共有多少, 考慮邊界。 這就一模擬,考慮的細一點應該就可以。 只要一出大意了就會無限wrong!! 也沒什麼算法,直接上代碼吧. #include<iostr

原创 nyoj832 合併遊戲(狀態壓縮DP)

合併遊戲 題目鏈接 題意 : n個石子, 給你一個n*n矩陣, A[i][j]表示第i個和第j個合併蹦出的金幣值, 合併完石子j消失。求合併所有石子後,所得的最大金幣數。 分析 : 1、 題中給的數據範圍 n(1<=n<

原创 poj2299

poj2299題目鏈接 題意: 一個含有n個數的數組, 每次只能交換相鄰的兩個數, 求最少操作多少次可以使該數組變成一個有序數組(從小到大)。 分析: 先說一下歸併排序吧。 二分的思想, 就是將一元素集合分割成兩個或更多個

原创 揹包問題——nyoj860 又見01揹包

題目大意應該了都瞭解了吧。 分析:看題中給的數據可知W = 10^9數據太大, 開不了這麼大的數組。但仔細看看你會發現 n<=100 ,vi <= 100 。他的總價值最多也不會超過10000。 那麼我們就開一個d[i]數組,