a 點有乙個過河卒,需要走到目標 b 點。卒行走規則:可以向下、或者向右。同時在棋盤上的任一點有乙個對方的馬(如上圖的 c 點),該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。例如上圖 cc 點上的馬可以控制 9 個點(圖中的 p1,p2⋯p8和 c)。卒不能通過對方馬的控制點。
棋盤用座標表示,a 點(00)、b 點(n,m)、c 點(cx,cy)(0
輸入格式
輸入 4 個整數,n,m,cx,cy,分別表示 b 點的橫縱座標和 c 點的橫縱座標。
輸出格式
輸出乙個整數,代表從 a 點走到 b 點的所有路徑數。
樣例輸入
5 5 2 4
樣例輸出
14我的思路:
首先根據馬的座標位置求出馬將要跳的點。
在dp中清除這些點的路段。
進行乙個dpi中(i,j)為座標,dpi為所有路徑數的狀態轉移即可。
詳情見**:
#include#define ll long long
using namespace std;
int main();
cin>>n>>m>>cx>>cy;
dp[cx][cy]=-1;
for(int i=-2;i<=2;i++)
}dp[0][0]=1;
for(int i=0;i<=n;i++)
if(i!=0) dp[i][j]+=dp[i-1][j];
if(j!=0) dp[i][j]+=dp[i][j-1];}}
cout<
}
演算法學習之路
目錄 演算法學習之路 一 前言 一 書籍 二 學習內容 1.空間複雜度,時間複雜度 2.貪心演算法 總結 由於長期沉迷摸魚哲學,感覺自己已經快廢了,決定今天開始學習一些演算法資料充實自己,希望不要三分鐘熱度吧。使用的學習書籍是csdn中自帶的 趣學演算法 看過很多演算法的教學書籍了,開頭都是老面孔了...
演算法學習之路
第一階段 練經典常用演算法,下面的每個演算法給我打上十到二十遍,同時自己精簡 因為太常用,所以要練到寫時不用想,10 15 分鐘內打完,甚至關掉顯示器都可以把程式打 出來.1.最短路 floyd dijstra,bellmanford 2.最小生成樹 先寫個prim,kruscal要用並查集,不好寫...
演算法學習之路 貪心
基本概念 貪心演算法 又稱貪婪演算法 是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀...