过河卒 求助

P1002 [NOIP2002 普及组] 过河卒

开头赋值 false 那两个 for 循环是什么鬼啊……
by xutongwei @ 2020-10-01 13:09:59


马最多只能到 8 个点,加上马自己的位置,一共是 9 个不能走的点。 您这弄的……循环 64 次,一堆点都走不了了,肯定错。
by xutongwei @ 2020-10-01 13:11:56


@[HamburgerFav](/user/176316)
by xutongwei @ 2020-10-01 13:12:27


@[xutongwei](/user/223588) 这样好像还不行 ```cpp #include "bits/stdc++.h" #define MAXN 25 using namespace std; unsigned long long int dp[MAXN][MAXN] = { 1 }; bool ifHorse[MAXN][MAXN] = { true }; int hMovX[9] = { 0, -2, -1, 1, 2, -2, -1, 1, 2 }; int hMovY[9] = { 0, 1, 2, 2, 1, -1, -2, -2, -1 }; int hPosX, hPosY; int sDesX, sDesY; int main() { scanf("%d%d%d%d", &sDesX, &sDesY, &hPosX, &hPosY); for (int i = 0; i < 9; i++) { ifHorse[hPosX + hMovX[i]][hPosY + hMovY[i]] = false; } for (int i = 0; i < sDesX; i++) { for (int j = 0; j < sDesY; j++) { if (ifHorse[i][j]) { dp[i + 1][j + 1] = dp[i][j + 1] + dp[i + 1][j]; } } } printf("%d", dp[sDesX][sDesY]); return 0; } ```
by HamburgerFav @ 2020-10-01 13:21:38


码 风 清 奇
by 听取MLE声一片 @ 2020-10-01 13:28:04


双重循环里面...这判断...
by PotassiumHydride @ 2020-10-01 13:40:31


@[HamburgerFav](/user/176316) ```cpp bool ifHorse[MAXN][MAXN] = { true }; ``` 除了第一个,其他全部初始化为 false…… 当然会炸
by xutongwei @ 2020-10-01 15:12:43


|