1 条题解
-
0
C++ :
#include <cstdio> #include <cstring> int main(){ int n, m, hx, hy; if(scanf("%d %d %d %d", &n, &m, &hx, &hy) != 4) return 0; static int bad[64][64]; memset(bad, 0, sizeof(bad)); int dx[] = {0, 1, 1, 2, 2, -1, -1, -2, -2}; int dy[] = {0, 2, -2, 1, -1, 2, -2, 1, -1}; for(int k=0;k<9;k++){ int x = hx + dx[k], y = hy + dy[k]; if(x >= 0 && x <= n && y >= 0 && y <= m) bad[x][y] = 1; } static long long f[64][64]; memset(f, 0, sizeof(f)); for(int i=0;i<=n;i++) for(int j=0;j<=m;j++){ if(bad[i][j]){ f[i][j] = 0; continue; } if(i == 0 && j == 0){ f[i][j] = 1; continue; } long long v = 0; if(i > 0) v += f[i-1][j]; if(j > 0) v += f[i][j-1]; f[i][j] = v; } printf("%lld\n", f[n][m]); return 0; }
- 1
信息
- ID
- 2673
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者