计算来自N个元素

时间:2016-02-17 19:22:02

标签: combinations

USACO programming problem工作时,我在使用蛮力方法时陷入困境。

从N个元素的列表中,我需要计算所有不同的配对。

我的问题是双重的。

  1. 如何在阵列中表达这样的配置?
  2. 如何计算所有不同的组合?
  3. 在我放弃解析分析之后,我只采用了蛮力的方法。虽然这是特定于上下文的,但我注意到人们可以快速排除只有一个所谓的“虫洞”的行 - 它无法有效地处于无限循环中。

    更新

    我会用树形结构来表达它们。设定N = 6; {A,B,C,d,E,F}。 通过按时间顺序构建以下树,列出了所有组合。

    A - > B,C,d,E,F;

    B - > C,d,E,F;

    C - > d,E,F;

    D - > E,F;

    E - > F。

    检查:总共有6个超过2 = 6!/(2!* 4!)= 15个组合。

    注意。选择较低节点后,应将其作为顶级节点丢弃;它只能存在于一对中。

    接下来,选择它们并循环遍历所有配置。

1 个答案:

答案 0 :(得分:1)

以下是一个示例代码(在C / C ++中):

git