algorithm - 如何计算可能的不同序列的数量?

标签 algorithm combinatorics

让我们考虑具有 N 行(编号为 1 到 N)和 M 列(编号为 1 到 M)的所有矩阵,这些矩阵仅包含 0 到 K−1(含)之间的整数。对于每个这样的矩阵 A,让我们形成一个序列 L[1],L[2],…,L[N+M]

对于每个 'i' (1≤i≤N),L[i] 是 A 的第 i 行中所有元素的最大值。 对于每个 'i' (1≤i≤M),L[N+i] 是 A 的第 i 列中所有元素的最大值。 找出以这种方式形成的不同序列的数量。 我的方法很简单。

示例:- N=2;M=2;K=2

答案:-10

所有 16 种不同的可能矩阵如下:-

[0, 0]

[0, 0] = (0, 0, 0, 0)(生成序列)

[0, 0]

[0, 1] = (0, 1, 0, 1)

[0, 0]

[1, 0] = (0, 1, 1, 0)

[0, 1]

[0, 0] = (1, 0, 0, 1)

[1, 0]

[0, 0] = (1, 0, 1, 0)

[1, 0]

[1, 0] = (1, 1, 1, 0)

[1, 1]

[0, 0] = (1, 0, 1, 1)

[0, 0]

[1, 1] = (0, 1, 1, 1)

[0, 1]

[0, 1] = (1, 1, 0, 1)

[1, 0]

[0, 0] = (1, 0, 1, 0)

[0, 1]

[1, 0] = (1, 1, 1, 1)

[1, 1]

[1, 0] = (1, 1, 1, 1)

[1, 1]

[0, 1] = (1, 1, 1, 1)

[1, 1]

[0, 1] = (1, 1, 1, 1)

[1, 0]

[1, 1] = (1, 1, 1, 1)

[1, 1]

[1, 1] = (1, 1, 1, 1)

最佳答案

我会给出一系列提示:

对于给定的矩阵 A 和关联的 L,找出 L[1],...,L[N] 的最大值(行最大值)与 的最大值之间的关系code>L[N+1],...,L[N+M](列最大值)。

接下来,尝试证明任何满足这些条件的0到K-1整数的L序列实际上都可以由某个矩阵A得到。

最后,计算那些序列。

关于algorithm - 如何计算可能的不同序列的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56559354/

相关文章:

string - 从字符串中删除单个字符出现

python - 带循环python的有向图中从目标到根的最短路径

c - fork 的可能组合数

python - 在 python 中生成列表的条件乘积(组合)

python - 无论顺序如何,都生成重复列表

java - 模式匹配算法

java - 未知数字大小的通用哈希

arrays - 已排序矩阵中的第 K 个最小元素

javascript - 从字符串数组创建唯一组合数组

language-agnostic - 生成随机 6 个字符的字符串