(不能让sigma标志在浏览器上看起来很好)。
对于整数n,我们将F_n标记为Injective函数的组
f:{1,2,3…,n}→{1,2,3…,n}
对于具有非负值的nXn阶的给定矩阵A,我们将标记:
P(A)=∑_(f∈F_n)▒〖A_(1,f(1))*A_(2,f(2)) 〗…*A_(1,f(1) )*A_(n,f(n))
计划确定P(A)= 0的多项式算法。
我正在考虑在矩阵中查找n^2-n+1
个零,然后在任何排列中,产品中将为零,然后总和将为零,这将给出O(n ^ 2)的运行时间。不确定解决方案。
有什么想法吗?
感谢
示例:
答案 0 :(得分:1)
你的问题是“有没有办法将N车放在NxN棋盘上,这样他们就不会互相攻击,同时避开标记的(零)方格。”
例如,如果一行或一列都是零,那么它是不可能的,P(A)= 0,所以寻找n ^ 2 - n + 1个零不会削减它。
然而,这里有答案,为这个问题提供了一个可爱的多项式时间解决方案:https://cs.stackexchange.com/questions/28413/how-hard-is-this-constrained-n-rooks-problem
答案 1 :(得分:0)
在所有三个层次应用分配法后,27种产品组合的总和很简单。
(a+b+c) * (d+e+f) * (g*h*i)
因此,您所要做的就是检查行和是否为0。