一个经典的递推题

递推不会的看下面:

https://www.cnblogs.com/haoningdeboke-2022/p/16247055.html

俗话输得好 马走日

所以先写出马可以走到的地方

 
1 const int fx[] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
2 const int fy[] = {0, 1, 2, 2, 1, -1, -2, -2, -1};

然后标记马走过的地方:

     1 for(int i = 1; i <= 8; i++) s[mx + fx[i]][my + fy[i]] = 1;
但要防止越界,所以坐标+2以防越界:
 1 bx += 2; by += 2; mx += 2; my += 2; 
最关键的代码:
for(int i = 2; i <= bx; i++){
for(int j = 2; j <= by; j++){
if(s[i][j]) continue; // 如果被马拦住就直接跳过
f[i][j] = f[i - 1][j] + f[i][j - 1];
//递推 因为可以从左边的点和上边的点走过来所以 左边的点+上边的点

}
}
完整代码:
 1 #include<iostream>
2 #include<cstring>
3 #include<cstdio>
4 #include<algorithm>
5 #define ll long long
6 using namespace std;
7
8 const int fx[] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
9 const int fy[] = {0, 1, 2, 2, 1, -1, -2, -2, -1};
10 //马可以走到的位置
11
12 int bx, by, mx, my;
13 ll f[40][40];
14 bool s[40][40]; //判断这个点有没有马拦住
15 int main(){
16 scanf("%d%d%d%d", &bx, &by, &mx, &my);
17 bx += 2; by += 2; mx += 2; my += 2;
18 //坐标+2以防越界
19 f[2][1] = 1;//初始化
20 s[mx][my] = 1;//标记马的位置
21 for(int i = 1; i <= 8; i++) s[mx + fx[i]][my + fy[i]] = 1;
22 for(int i = 2; i <= bx; i++){
23 for(int j = 2; j <= by; j++){
24 if(s[i][j]) continue; // 如果被马拦住就直接跳过
25 f[i][j] = f[i - 1][j] + f[i][j - 1];
26 //状态转移方程
27 }
28 }
29 printf("%lld\n", f[bx][by]);
30 return 0;
31 }


最新文章

  1. 使用极光推送(www.jpush.cn)向安卓手机推送消息【服务端向客户端主送推送】C#语言
  2. php木马样本,持续更新
  3. redis 查看的版本
  4. 读《编写可维护的JavaScript》第九、十章总结
  5. js或jquery如何获取父级、子级、兄弟元素(包括祖级、孙级等)
  6. ecshop 影响全局的标量lib_main.php
  7. Oracle的控制文件
  8. mybatis0210 mybatis和ehcache缓存框架整合
  9. fidder https以及Fiddler抓取HTTPS协议
  10. awk命令详解二
  11. C# 处理Word自动生成报告 三、设计模板
  12. Angular组件——父组件调用子组件方法
  13. python控制台输出带颜色的文字方法
  14. 图像的视差匹配(Stereo Matching)
  15. Linux 任务管理 &amp;&amp; 常用指令
  16. 阿里云Linux服务器挂载数据盘
  17. 决策树ID3算法--python实现
  18. 读书笔记|Windows 调试原理学习|持续更新
  19. P4语法(2) Parser
  20. qsc round#2 喵哈哈村的排队(本辣鸡想七想八的,特写此博文给自己一个提醒)

热门文章

  1. TensorRT基础笔记
  2. ABC238E Range Sums
  3. pycharm下载安装与基本配置
  4. 委派模式——从SLF4J说起
  5. Dubbo2.7的Dubbo SPI实现原理细节
  6. 分布式配置nacos搭建踩坑指南(下)
  7. golang拾遗:实现一个不可复制类型
  8. ctfshow-web入门-SSTI学习
  9. Jquery 点击弹窗,将弹窗内容赋值到各个项demo
  10. ajax请求头添加参数