Arrays 使矩阵为零
给出了具有Arrays 使矩阵为零,arrays,algorithm,matrix,Arrays,Algorithm,Matrix,给出了具有N行和M列的两个矩阵。设P[i][j]和A[i][j]分别为第一和第二矩阵第行的jth元素。现在我们要使第二个矩阵的每个元素为零。在每一轮中,我们必须选择五个整数: 1 ≤ x1 ≤ x2 ≤ N 1 ≤ y1 ≤ y2 ≤ M 0 ≤ k ≤ 10000 在此之后,对于所有对(i,j),如下所示: x1 ≤ i ≤ x2 y1 ≤ j ≤ y2 执行以下操作: A[i][j] = (k + A[i][j]) % P[i][j] 现在,我想使A矩阵以最小的移动量为零。除了拾取每个
N
行和M
列的两个矩阵。设P[i][j]
和A[i][j]
分别为第一和第二矩阵第行的jth
元素。现在我们要使第二个矩阵的每个元素为零。在每一轮中,我们必须选择五个整数:
1 ≤ x1 ≤ x2 ≤ N
1 ≤ y1 ≤ y2 ≤ M
0 ≤ k ≤ 10000
在此之后,对于所有对(i,j)
,如下所示:
x1 ≤ i ≤ x2
y1 ≤ j ≤ y2
执行以下操作:
A[i][j] = (k + A[i][j]) % P[i][j]
现在,我想使A
矩阵以最小的移动量为零。除了拾取每个元素并用P[i][j]-A[i][j]
的差值递增之外,最好的方法是什么
示例:假设我们有N=2
和M=2
,让p
矩阵为
1 2
2 3
让A
矩阵
0 1
1 1
那么这里的最小移动量是2,即:
移动1:将(1,1)
到(2,2)
之间的每个值增加1
移动2:将(2,2)
之间的每个值增加(2,2)
1
这是一个优化问题,可能有很多答案,所以我希望答案最接近最小移动
所以我需要告诉每个移动的最小移动量以及x1,y1,x2,y2
和k
约束条件是:N
和M
最多可为100。所有P[i][j]
的最大值都是10,A[i][j]
总是大于P[i][j]
,假设无限矩阵项,我很确定最坏的情况是MN移动。最好的情况可能会大大降低,甚至对于某些合理的输入,1次移动。你需要一个准确的答案,还是一个足够接近最小的答案?我们是被限制在机器整数中的k
值,还是可以使用大值?@user2357112我想要一个足够接近最小值的答案。是的,k可以在上面提到的最大值10000,M和N在内存范围内。你是对的,最坏的情况是MN。OP中的IMHO示例不正确:最小移动应该是1,(1,1)
到(2,2)
的时间为5秒。这是一场正在进行的比赛。请在比赛结束后询问。@DanielTheRocketMan:现在可以在社论上找到答案