首页 > 其他分享 >关于 K 维空间中整点之间曼哈顿距离最短路径计数问题

关于 K 维空间中整点之间曼哈顿距离最短路径计数问题

时间:2023-10-18 15:11:07浏览次数:31  
标签:MD right 维空间 整点 路径 AMDC 计数问题 left

约定

\(K\) 维空间中,整点的坐标以 \(K\) 个整数表示,形如

\[Point\left(X_1,X_2,\cdots,X_k\right) \]

定义两个点的曼哈顿距离为 每一维坐标差的绝对值之和,记为

\[MD\left(A, B\right) = \sum_{i=1}^{K} \left|{X_{i_A}-X_{i_B}}\right| \]

定义两个点 \(A\) , \(B\) 相邻 当且仅当满足

\[MD\left(A, B\right) = 1 \]

最短路径计数

每次只能移动到相邻的点,容易发现 \(S\) 到 \(T\) 的曼哈顿距离最短路径可能经过的点构成了一个 \(K\) 维方体,而 \(S\) 和 \(T\) 正为此方体相对的两个顶点。

三维空间中示意图如下:

S->T

我们定义在第 \(i\) 维坐标上 \(\pm 1\) 为操作 \(i\),显然的是,需要什么操作及具体个数是已知的,总数为

\[MD\left(S,T\right) \]

那么一条路径就可以转换成一个操作序列,不同的路径数量等价于本质不同的序列数量。
两个序列本质不同当且仅当至少存在一个位置上的操作编号不同。

显然在排列中,同样的操作本质不同,但实际上,它们是相同的,所以需要去重。

则总方案数为

\[\frac{MD\left(S,T\right)!}{\Pi_{i=1}^{K} \left(\left|{X_{i_S}-X_{i_T}}\right|!\right)} \]

扩展

假定在此 \(K\) 维空间中,存在一些整点是不能经过的(保证不为 \(S\) 和 \(T\)),那么 \(S\) 到 \(T\) 的最短路径数量会有什么变化呢?

我们称不能经过的点为 标记点
并定义两个点之间不经过标记点的最短路径条数为

\[AMDC\left(A,B\right) \]

在不考虑标记点时,

\[AMCD\left(A, B\right) = \frac{MD\left(A,B\right)!}{\Pi_{i=1}^{K} \left(\left|{X_{i_A}-X_{i_B}}\right|!\right)} \]

同时令

\[f_i=AMDC\left(S,i\right) \]

显然,真正对我们有用的只有 \(K\) 维方体内的标记点和 \(T\) 点的 \(f\) 值,考虑 \(DP\) 转移。

那么,\(A\) 点对 \(B\) 点的 \(f\) 造成影响的充要条件是什么?
可以发现为

\[x_{i_A} \le x_{i_B} \left( x | x \in \left[ 1,K \right] \right) \]

也就是 \(K\) 维偏序

所以

\[f_i = AMDC\left( S, i \right) - \sum_{j} g\left(j, i\right) \times f_j \times AMDC\left(j, i\right) \]

其中,

\[g\left(A, B\right) = \left\{ \begin{aligned} 1 \qquad& x_{i_A} \le x_{i_B} \left( x | x \in \left[ 1,K \right] \right)\\ 0 \qquad& other \end{aligned}\right. \]

满足 \(g\left(S, T\right) = 1\)

用到了一点小容斥。
可以画一下二维空间中的图来帮助理解。

如有任何问题请私信作者 @qkhm

标签:MD,right,维空间,整点,路径,AMDC,计数问题,left
From: https://www.cnblogs.com/qkhm/p/17770240.html

相关文章

  • 通过matlab模拟光线在三维空间中的传播路径并根据反射点进行三维空间建模
    1.算法理论概述      光线在三维空间中的传播路径涉及到光学、几何学等多个领域,是计算机图形学和计算机视觉等领域中的重要问题之一。本文将从专业角度详细介绍模拟光线在三维空间中的传播路径,包括多次反射情况,包括实现步骤和数学公式的详细介绍。 一、概述     ......
  • YACS 2023年8月月赛 甲组 T2 直线整点 题解
    简单题,先二分出直线上$x$最小的点使得这个点在矩形内。然后不断跳,直到遇到整点。(实际上要用扩欧,但初测能过于是就偷个懒没写) 接着不断跳直到不符合条件。先$\sqrt{V}$个跳一下,跳完后再一个一个跳就不用写二分了多好。代码:#include<iostream>#defineintlonglongusi......
  • P1 P2508 [HAOI2008]圆上的整点
    [HAOI2008]圆上的整点23.3.22WE.真是一道神题,特别是对于刚得了甲流滚回家摆烂从而有时间乱看而恰巧这几天上课刚学复数的我。一直很好奇复数到底是什么,昨天晚上刷B站学习偶然看到了一个解释虚数的视频,结果也没看懂,只听说乘上一个\(i\)相当于旋转\(90^{\circ}\),一想还真是!......
  • UWB精确定位问题(TOA定位(三维空间四点定位)matlab实现)
    一、原理方法四点定位(Four-AnchorPositioning)是一种基于距离测量的定位方法,通常采用TOA方法来计算目标物体到每个基站的距离。通过测量目标物体到至少四个基站的距离,并利用三角定位等算法计算出目标物体的位置。因此,四点定位属于TOA定位方法的一种。在UWB精确定位中,四点定位(Four-A......
  • 7维空间计算器kwl2024下载
    2024版更新记录: 2024EditionupdateRecord:1、能计算一些7维空间的距离和角度的数据。2、能建立、保存和打开数据定义文件和结果文件。1,cancomputethedataof7dimssomedistancesofspacesandangle.2,cancreate,keepandopendocumentandresultdocument......
  • 三维空间中的刚体运动、MPU6050、DMP姿态解算、卡尔曼滤波
    坐标系空间中三个正交的轴组成,构成线性空间的一组基($......
  • sat计数问题
    /*先是建图,跑一次缩点建立一个最初的阵营加上0代表认识,1代表不认识ans=0因为划分了两个独立的阵营,所以一次是只能交换一个人的如果对方阵营我只认识一个,并且我认识的哪一个可以来到我的阵营,那么就将两者进行交换(0,1)如果对方阵营的我都不敌对,或不认识,那我就可以直接过......
  • 【改进蚁群算法】 蚁群算法 Dijkstra算法 遗传算法 人工势场法实现二维 三维空间路径
    【改进蚁群算法】蚁群算法Dijkstra算法遗传算法人工势场法实现二维三维空间路径规划本程序为改进蚁群算法+Dijkstra算法+MAKLINK图理论实现的二维空间路径规划 算法实现:原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/636749258569.html1)基于MAKLINK图理论生成地图,并对......
  • LeetCode 周赛 347(2023/05/28)二维空间上的 LIS 最长递增子序列问题
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。往期回顾:LeetCode单周赛第346场·仅68人AK的最短路问题周赛347概览T1. 移除字符串中的尾随零(Easy)标签:模拟、字符串T2.对角线上不同值的数量差(Easy)标签:前后缀分解T3.使所有字符......
  • 括号匹配序列计数问题
    题意一个长度为\(n\)且符合规范的括号序列,其有些位置已经确定了,有些位置尚未确定,求这样的括号序列一共有多少个。要求复杂度为\(O(n^3)\)分析由题意可知,我们可以这样定义括号匹配序列:空序列是括号匹配序列。如果S是括号匹配序列,那么\((S)\)也是括号匹配序列。如果......