Algorithm 有多少种方法可以给圆中未着色的边上色

Algorithm 有多少种方法可以给圆中未着色的边上色,algorithm,disjoint-sets,Algorithm,Disjoint Sets,给定圆上的n个点,绘制所有边(C(2,n))。其中一些边缘已经用蓝色或红色着色。您应该了解有多少种方法可以对静止的边缘着色,以便在以下条件下获得最终图片: 所有边缘都是彩色的 所有三角形都有0或2条红色边 以下是一些例子: 例1 输入:n=3和0个边已着色。 输出=4:因为我们可以将所有边涂成蓝色,或者只将其中一条涂成蓝色,其余部分涂成红色 例2 输入n=4,4条边已着色 12蓝色 23蓝色 3.4红色 4.1红色 输出=1:因为为静止边着色的唯一方法如下所示: 13蓝色 2.4红色 限制条件:

给定圆上的n个点,绘制所有边(C(2,n))。其中一些边缘已经用蓝色或红色着色。您应该了解有多少种方法可以对静止的边缘着色,以便在以下条件下获得最终图片:

  • 所有边缘都是彩色的
  • 所有三角形都有0或2条红色边
  • 以下是一些例子:

    例1 输入:n=3和0个边已着色。 输出=4:因为我们可以将所有边涂成蓝色,或者只将其中一条涂成蓝色,其余部分涂成红色

    例2 输入n=4,4条边已着色

    12蓝色

    23蓝色

    3.4红色

    4.1红色

    输出=1:因为为静止边着色的唯一方法如下所示:

    13蓝色

    2.4红色

    限制条件:

    • 3这里有一个线性时间算法

      首先,观察有效着色的每个周期都包含偶数条红边(我将把它作为练习)。给定生成树的颜色,只存在一个有效的完成。唯一性很容易证明,因为不是树中的每一条边的颜色都是由构成循环的树边的颜色奇偶性决定的。我将把有效性作为另一个练习(抱歉,时间紧迫)


      该算法是,使用深度优先搜索找到给定边的生成林,存储每个节点与其树根之间的边颜色奇偶性。根据这些数据,我们可以验证不是在森林中的每条边的给定颜色。如果有错误,则有0种颜色。否则,有2^(树数减去1)种颜色。

      你说的“所有三角形都有0或2条红色边”是什么意思?我指的是有3条蓝色边或一条蓝色边和两条红色边的三角形@黑色谢谢你的回答。但是我不能很好地理解你的算法。你能用这个算法来解决我的第二个例子吗大卫Eisenstat@Mahsirat四条边形成一个简单的循环。有几个可能的生成林,每个都由一棵包含三条边的树组成。第四种颜色的基本循环是正确的颜色,因此有2^(1-1)=1种颜色。