不需要搜尋,很容易就能求出轉移方程。f[i][j]從兩個方向即f[i - 1][j]和f[i][j - 1]轉移過來,但是要注意邊界情況,因為下標從0開始會有負數的情況,所以f整個平移一位,f[1][1]可以從f[1][0]轉移過來。
另外注意馬所在的位置也需要被標記。結果很大要開long long。
#include
using
namespace std;
const
int n =30;
int dx=
;int dy=
;long
long f[n]
[n];
int g[n]
[n], n, m, x, y;
intmain()
f[1]
[0]=
1;for(
int i =
1; i <= n +
1; i++
)for
(int j =
1; j <= m +
1; j++)
cout<
[m +1]
;return0;
}
洛谷P1002過河卒(dp)
第一次自己做出了一道簡單dp題目,發篇部落格紀念一下哈啊哈哈 思路 先找到狀態轉移方程,根據dp定義,把大問題所求變成乙個個子問題,我要知道某個位置的路徑數目,那麼我要知道,到達這個位置之前每乙個位置能有多少種方法到達,那麼我每乙個位置的路徑數目與上乙個位置的路徑數目有關 上乙個位置無非是左邊一點和...
洛谷 P1002 過河卒
棋盤上a點有乙個過河卒,需要走到目標b點。卒行走的規則 可以向下 或者向右。同時在棋盤上c點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為 馬攔過河卒 棋盤用座標表示,a點 0,0 b點 n,m n,m為不超過20的整數 同樣馬的位置座標是需要給出的。現在要求你計算...
洛谷P1002過河卒
dp水題,我都會做 我們考慮地圖上i,j的位置可以怎麼過來,因為卒只能向下或向右,所以當前位置只能由它的上方或左方轉移過來,所以f i j f i 1 j f i j 1 然後考慮邊界情況,沿著上沿和左沿只能向乙個方向走,所以f i 0 0,f 0 i 0,這是不考慮有馬的情況,當馬加入圖中後,我們...