USACO演算法系列十八 game1

2021-05-23 19:03:56 字數 444 閱讀 9099

題目:http://www.nocow.cn/index.php/translate:usaco/game1

很有趣的一道題目,兩個人輪流從一串數字的兩端拿數字,要求使自己拿到的數字總和最大。如果使用回溯的方法,限定不能保證最優的情況,即最優情況不知道怎麼界定。

可以用動態規劃的思想來考慮,用map[i][j]表示,從i到j的數字串,自己能拿到的最大的數字和。那麼有如下公式

map[i][j] = sum[i][j] - min(map[i+1][j],map[i][j-1]); i 不等於j。(即,自己拿了乙個數字以後,保證對方只能拿到比較少的。)

map[i][j] = number[i] i == j時。

sum[i][j]表示i 到 j,對number求和。

測試結果如下:

所以一定要注意思考題目的方式。要抽象,用數學的語言,最好是有規律的,明確的語言思考。

USACO演算法系列十四 fence

題目 http www.nocow.cn index.php translate usaco fence 看完這道題目的第一想法就是,遍歷所有的邊,而且每一條邊的經過次數只能一次。是離散數學裡面的圖論的尤拉通路問題,在這裡充分體現了數學的重要性。定理 無向圖g有尤拉通路的充分必要條件是g為連通圖,並...

USACO演算法系列十六 續

題目 http www.nocow.cn index.php translate usaco camelot 昨天晚上寫了乙個晚上的這道題,各種邊界條件和意外情況。看著自己寫的600多行 和一連串的test ok.心裡特別有成就感,但是看了別人寫的 80幾行,就發現了實力的差距。先說說自己的想法吧,...

USACO演算法系列 討論篇

這道題目來自於我同學的口述,大意是這樣,有n個房間,編號為1,2,3 n,裡面有1個寵物,然後你每次只能開啟乙個房間,如果沒有找到,寵物必須隨機向左向右移動一次,問你如何以最快的開門方式找到寵物。eg,有3個房間,那麼你只要至多開啟中間的房間兩次就可以找到寵物了。分析 用n個位來表示n個房間,0 代...