当前位置: 首页 > news >正文

算法题(205):过河卒

审题本题需要我们在避开马的守护范围的情况下找到所有可以从左上角起点走到右下角终点的方案思路方法一动态规划1状态表示f[i][j]表示从起点走到(i,j)点的所有路径方案数2状态转移方程由于行走规则是向右和向下走所以在最后一步中可以走到目标位置的只有其上方和左边的节点对于可以到达的节点对于无法到达的位置需要注意的是本题中无法到达马本身和其守护的位置而我们可以发现马的守护范围是有规律的守护节点距离马的曼哈顿距离都是3曼哈顿距离等于三就是只需要走三步就可以到达当前节点但是本题中还有四个节点虽然和马的曼哈顿距离是3,却不是马的守护范围他们就是满足ix或jy的节点。然后还有个节点就是马本身了3初始化由于本题是从0,0开始走的如果我们直接填表会导致越界访问。所以我们可以让整个表向右下角移动一位从而让表的起点为1,1然后再在f[0][1]/f[1][0]中选择任一填写为1即可4填表顺序从上到下从左到右根据行走规则得到的状态转移方程表明我们想填写该节点的前提是填写完该节点的上一位节点和左一位节点所以我们需要从上到下从左到右填表5输出答案直接输出f[n][m]虽然我们整个表移动过但是这并不影响最终答案最终答案就是表的有效范围的最右下角解题#includeiostream #includealgorithm using namespace std; typedef long long ll; const int N 30; int n, m,x,y; ll f[N][N]; int main() { cin n m x y; n; m; x; y;//集体右下角移动 //初始化 f[0][1] 1; //填表 for (int i 1; i n; i) { for (int j 1; j m; j) { if ((i ! x j ! y (abs(i - x) abs(j - y)) 3) || (i x j y)) { f[i][j] 0; } else { f[i][j] f[i][j - 1] f[i - 1][j]; } } } cout f[n][m] endl; return 0; }注意计算结果的数量是很大的极有可能超过了int数据范围所以我们应该使用longlong数据类型来存储f数组的答案P1002 [NOIP 2002 普及组] 过河卒 - 洛谷
http://www.rkmt.cn/news/1393850.html

相关文章:

  • Windows 11系统精简与优化的智能解决方案:Win11Debloat
  • 3分钟掌握baidupankey:百度网盘提取码智能获取终极指南
  • 硬件行业赛道这么多,新手该怎么选不踩坑
  • Static-Code-Scan与现代前端框架:React、Vue、Angular兼容性检查
  • AMD Ryzen 系统底层调试:SMUDebugTool 深度实战与性能优化指南
  • Portus完全指南:Docker Registry的终极授权服务与UI解决方案
  • Redux Dynamic Modules与Redux Saga集成:10个高级异步处理模式
  • 如何用ContextMenuManager拯救你的Windows右键菜单:3分钟告别混乱,效率翻倍
  • 2026年Q2高清投屏与屏幕镜像软件精选榜单,热门免费跨屏工具实用盘点
  • GRF参数调优全攻略:从基础参数到高级优化技巧
  • 深度解析Vue.Draggable:专业级拖拽排序架构设计与实战应用
  • Android Dev Bookmarks未来路线图:项目发展方向与社区建设规划
  • MIT App Inventor终极指南:零代码开发Android和iOS应用的完整教程
  • iniparser配置管理最佳实践:从简单应用到复杂企业级系统的演进
  • tools.simonwillison.net的实用时间工具:时区转换、日期计算与时间戳
  • PCB可制造性
  • Claude Code 用户告别封号与 token 焦虑的配置迁移方案
  • Rucene源码探秘:从TokenStream到Query执行的全流程分析
  • 实战案例|条形码组件在【固定资产标签打印】中的真实应用
  • 快捷键已被占用怎么解决?解决快捷键冲突的方案。如何将一个快捷键映射为另一个快捷键?丨PowerToys键盘管理器
  • Rucene高级特性:文档高亮、排序与过滤功能使用指南
  • AI Playbook:革命性AI服务平台 - 一站式集成10+主流AI服务商
  • 工业相机中YUV、RGB、RAW、JPEG怎么选?
  • 订阅Token Plan套餐在长期项目中的成本节省体感
  • WordPress Widget Boilerplate安装与配置:5分钟快速入门教程
  • baidupankey终极指南:3分钟学会百度网盘提取码自动查询
  • 终极隐私保护指南:使用Privacy工具检测个人数据泄露的完整教程
  • 【Elasticsearch从入门到精通】第43篇:Elasticsearch搜索过程原理——分词、查询树与BM25评分
  • 联邦学习在网络威胁情报共享中的应用:FedScope系统设计与实践
  • 如何使用stremio-addons-list:新手必备的Stremio插件发现平台