1 条题解
-
0
C++ :
#include <cstdio> int main(){ int n, m; if(scanf("%d %d", &n, &m) != 2) return 0; int x1, y1, x2, y2; if(scanf("%d %d %d %d", &x1, &y1, &x2, &y2) != 4) return 0; if(x1 > x2){ int t = x1; x1 = x2; x2 = t; } if(y1 > y2){ int t = y1; y1 = y2; y2 = t; } /* A(1,1) -> B(n,m),只能向东(+x)或向北(+y)。障碍矩形 [x1..x2]x[y1..y2] 不可通行。 */ static long long f[64][64]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){ if(i >= x1 && i <= x2 && j >= y1 && j <= y2){ f[i][j] = 0; continue; } if(i == 1 && j == 1){ f[i][j] = 1; continue; } f[i][j] = 0; if(i > 1) f[i][j] += f[i-1][j]; if(j > 1) f[i][j] += f[i][j-1]; } printf("%lld\n", f[n][m]); return 0; }
- 1
信息
- ID
- 2672
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者