題目
考慮每個格仔\((i,j)\)獲得的得分即為經過這個格仔與不經過這個格仔的答案
預處理出起點到每個點的最小得分和每個點到終點的最小得分,
那麼經過這個格仔的答案很好求,問題是不經過這個格仔的答案,
也就是\((1,1)->(i-x,j)->(i-x,j+1)->(n,m)\)或者是
\((1,1)->(i,j-x)->(i+1,j-x)->(n,m)\),這都是很好求的
#include #include #include #define rr register
using namespace std;
const int n=2011; typedef long long lll;
int n,m,a[n][n]; lll ans,f1[n][n],f2[n][n],dp1[n][n],dp2[n][n];
inline signed iut()
inline lll min(lll a,lll b)
signed main()
洛谷 P1004 方格取數(DP)
考慮讓兩個人同時走,設計狀態則直接設f i j k m 表示第乙個人走到 i,j 第二個人走到 k,m 時所取數的最大值。當 i,j k,m 時,即兩個人走到同乙個點,則這個點其實在第二遍的時候已經為0,所以這個點的貢獻只是一次。則有轉移方程 f i j k m max f i 1 j k 1 m ...
洛谷 P1004 方格取數 入門dp
我好菜我好菜我好菜我好菜我好菜我好菜我好菜我好菜我好菜我好菜我好菜 題目 思路 一開始想的是先dp第一遍,再將走過的置零 hdg教的我逆推 再dp第二遍.然而wa了之後,hdg告訴我先讓第乙個人走最優可能會讓總體走不了最優.所以要列舉兩個人的所有的狀態,4維dp儲存兩個人的位置.轉移方程 如果兩個人...
洛谷 P1004 方格取數 簡單dp
這道題分類到簡單dp但是感覺一點都不簡單 這種做兩次的dp真的不是很懂怎麼寫。假如是貪心做兩次,感覺又不能證明這是最優的。直接看題解,題解要設定4個維度,兩個人同時走 但是怎麼避免同乙個物品被兩個人拿呢?設定dp i j k l 表示第1個人走到ij,第2個人走到kl能實現的最大的取法,再加一維 p...