比賽鏈接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=62369#overview
uva-1025.
間諜坐火車。紫書例題9-1.
題意:有個間諜從火車站1出發。給出每兩段車站之間要用的時間和發車時間。要求在時間T時到達第n個車站。在這段時間,她要儘可能地呆在行駛着的火車上,使她在各個車站停留的時間最小,問停留時間最小是多少。
解法:
1、用動態規劃。設dp[i][j]表示當前狀態爲在時間i到達第j個車站。那麼接下來有三種決策。
在車站等一分鐘:
dp[i+1][j] = min (dp[i+1][j],dp[i][j] + 1);
坐上往右開的火車:
dp[i+t[j]][j+1] = min(dp[i][j],dp[i + t[j]][j+1]);
坐上往左開的火車:
dp[i+ t[j-1]][j-1] = min(dp[i][j], dp[i + t[j-1]][j-1]);
2、判斷能否坐上火車時,要先預處理好在i時刻有沒有火車剛好到達j車站。
教訓:
1、是在“T時刻”到達n!不是在“T時刻之前”到達n!就這英語水平還能過六級我也是醉了。
2、把hastrain[path][N][1] = 1;打錯成hastrain[path][N][0] = 1;了。主要是我兩個相同的代碼複製下來,不同之處沒改全。
3、j改成j-1之後,有個地方漏改了!還是j.
4、以後還是想!!清!!楚!!再上手寫吧。免得改來改去會漏改一些地方。
uva-437
選磚塊壘高高的柱子。
吐槽一下:立方體是六個面都是正方形的啊喂!維基百科在此:http://zh.wikipedia.org/zh-cn/%E7%AB%8B%E6%96%B9%E9%AB%94 劉汝佳居然寫的是長寬高不一樣的“立方體”。對了。維基百科是純公益的,非常令人佩服的,不靠任何廣告收入來維持的,如果大家有閒錢,可以去捐贈一下。
題意:給你n種磚塊,每種都有無窮多個。要求壘一個儘可能高的柱子。使得每個面的長寬都嚴格大於它上面的那個磚塊的長寬。
解法:
1、把所有的面都用一個數字表示。共有3n個數字
2、把嚴格小於的兩個面之間連一條邊。(這個方法好棒呀!我怎麼沒想到!)
3、