洛谷P1002題解
#include<iostream> using namespace std; long long a[30][30]={0},n,m,my,mx; int main() { cin >> n >> m >> my >> mx;//輸入資料 // 整個棋盤往右往下挪兩格,這樣馬處於原點(挪移後 // 變成(2,2)點,往左上方跳不會出現陣列越界的情況 n += 2; // n行 m += 2; // m列 my += 2;// 馬位於第幾行 mx += 2;// 馬處於第幾列 for(int r = 2; r <= n; r++) // 共有n+1行 { for(int c = 2; c <= m; c++) // 共有m+1列 { a[r][c] = a[r - 1][c] + a[r][c - 1]; // 左側的數 + 上方的數 a[2][2]=1;// 要初始化為1,若為0後面全是0 // 馬的9個控制點 a[my][mx]=0;// 馬本身的位置 a[my + 2][mx + 1]=0; a[my + 2][mx - 1]=0; a[my - 2][mx + 1]=0; a[my - 2][mx - 1]=0; a[my + 1][mx + 2]=0; a[my + 1][mx - 2]=0; a[my - 1][mx + 2]=0; a[my - 1][mx - 2]=0; } } cout <<a[n][m]; return 0; }
少兒程式設計諮詢、演算法諮詢請加微信307591841或QQ群581357582

諾依曼演算法公眾號.jpg