有人可以帮助我获得以下情景的数学公式吗?

时间:2015-05-25 07:16:14

标签: logic

topcoder中有一个问题,下面给出了它。我只看了一眼源代码,但我什么都不懂。有人可以帮助我获得这个问题背后的数学背景或公式吗? 。

我被要求使用三种颜色设计10个垂直条纹标志:蓝色,橙色,黄色。

我被要求不要有两个相同颜色的相邻条纹(带有两条蓝色条纹的双条纹标志看起来与单条纹蓝色条纹完全相同)。我还被要求不要彼此相邻的黄色和橙色条纹,因为它看起来不太好。

我的目标是尽量减少需要使用的条纹数量。所以,

我可以制作3种不同的单条旗。

我可以制作4种不同的双条纹旗帜:

  1. 蓝黄色
  2. blue-orange
  3. 黄蓝色
  4. 橙蓝色。
  5. 我可以制作6种不同的三条纹旗帜:

    1. blue-yellow-blue
    2. 黄 - 蓝 - 黄
    3. 橙 - 蓝 - 橙
    4. 蓝色 - 橙色蓝色
    5. 橙蓝 - 黄
    6. 黄色 - 蓝色 - 橙色。
    7. 也就是说,我最多可以使用3个条纹制作13个不同的标志。

      您的任务是,给定标志数量,numFlags和禁止描述可能彼此不相邻的颜色的String [],返回最少使用的条带数,以便最多使用给定数量的不同标志那条纹。

      更详细:

      禁止使用String []以下列方式构建:

      1. the colors will be indexed from 0
      2. i-th element of forbidden will be the indices of colors that are not allowed to be neighbors of the i-th color
      3. each element of forbidden will be a single-space delimited list of numbers without trailing/leading spaces
      4. each element of forbidden will have numbers without leading zeroes in increasing order
      5. each color will be in the list of forbidden colors of itself
      6. rules for forbidden colors are symmetric: if the i-th color can't be a neighbor of the j-th color, then the j-th color can't be a neighbor of the i-th color
         at least one pair of neighbors will not be forbidden (if all possible pairs are forbidden, then you can only make one-striped flags)
      

1 个答案:

答案 0 :(得分:0)

@Herokiller

问题的限制

  • numFlags表示1到10 ^ 17之间的数字(注意:numFlags适合长)
  • 禁止使用2到10个元素
  • 禁止使用的每个元素都包含1到50个字符,并且只包含数字(' 0' - ' 9')和空格('&#39 ;)
  • 禁止的每个元素将以数字开头和结尾,并且连续不会有2个空格
  • 禁用的每个元素都将按照递增顺序排列禁止颜色的索引,而不带前导零。指数将介于0和颜色数减去一个
  • 之间
  • 禁止的每个元素都包含自己的索引,并代表对称关系
  • 并非禁止所有可能的颜色对