洛谷P1002题解

我会带着你远行 2022-03-19 04:16 510阅读 0赞
  1. #include<iostream>
  2. using namespace std;
  3. long long a[30][30]={0},n,m,my,mx;
  4. int main()
  5. {
  6. cin >> n >> m >> my >> mx;//输入数据
  7. // 整个棋盘往右往下挪两格,这样马处于原点(挪移后
  8. // 变成(2,2)点,往左上方跳不会出现数组越界的情况
  9. n += 2; // n行
  10. m += 2; // m列
  11. my += 2;// 马位于第几行
  12. mx += 2;// 马处于第几列
  13. for(int r = 2; r <= n; r++) // 共有n+1行
  14. {
  15. for(int c = 2; c <= m; c++) // 共有m+1列
  16. {
  17. a[r][c] = a[r - 1][c] + a[r][c - 1]; // 左侧的数 + 上方的数
  18. a[2][2]=1; // 要初始化为1,若为0后面全是0
  19. // 马的9个控制点
  20. a[my][mx]=0;// 马本身的位置
  21. a[my + 2][mx + 1]=0;
  22. a[my + 2][mx - 1]=0;
  23. a[my - 2][mx + 1]=0;
  24. a[my - 2][mx - 1]=0;
  25. a[my + 1][mx + 2]=0;
  26. a[my + 1][mx - 2]=0;
  27. a[my - 1][mx + 2]=0;
  28. a[my - 1][mx - 2]=0;
  29. }
  30. }
  31. cout <<a[n][m];
  32. return 0;
  33. }

少儿编程咨询、算法咨询请加微信307591841或QQ群581357582
诺依曼算法公众号.jpg

发表评论

表情:
评论列表 (有 0 条评论,510人围观)

还没有评论,来说两句吧...

相关阅读

    相关 P1002 过河卒(

    题目描述 棋盘上 A 点有一个过河卒,需要走到目标B 点。卒行走的规则:可以向下、或者向右。同时在棋盘上 C 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方