关于 K 维空间中整点之间曼哈顿距离最短路径计数问题
约定
维空间中,整点的坐标以 个整数表示,形如
定义两个点的曼哈顿距离为 每一维坐标差的绝对值之和,记为
定义两个点 , 相邻 当且仅当满足
最短路径计数
每次只能移动到相邻的点,容易发现 到 的曼哈顿距离最短路径可能经过的点构成了一个 维方体,而 和 正为此方体相对的两个顶点。
三维空间中示意图如下:
我们定义在第 维坐标上 为操作 ,显然的是,需要什么操作及具体个数是已知的,总数为
那么一条路径就可以转换成一个操作序列,不同的路径数量等价于本质不同的序列数量。
两个序列本质不同当且仅当至少存在一个位置上的操作编号不同。
显然在排列中,同样的操作本质不同,但实际上,它们是相同的,所以需要去重。
则总方案数为
扩展
假定在此 维空间中,存在一些整点是不能经过的(保证不为 和 ),那么 到 的最短路径数量会有什么变化呢?
我们称不能经过的点为 标记点
并定义两个点之间不经过标记点的最短路径条数为
在不考虑标记点时,
同时令
显然,真正对我们有用的只有 维方体内的标记点和 点的 值,考虑 转移。
那么, 点对 点的 造成影响的充要条件是什么?
可以发现为
也就是 维偏序。
所以
其中,
满足
用到了一点小容斥。
可以画一下二维空间中的图来帮助理解。
如有任何问题请私信作者 @qkhm
时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效