这是2013年本地INOI信息学奥林匹克问题。
假设我们在实轴上有
1393
个点。我们要为此着色 对于每个任意区间[a,b],如果至少有一个,则指向这些点 在1393点之间的间隔,至少一点内 间隔与此间隔中的其他点具有不同的颜色。同 这可以做多少种颜色? (最佳答案是11)。
INOI承诺用11简短回答。我们如何计算这个问题?
答案 0 :(得分:5)
使用k颜色可以着色的最多点是2 ^ k-1。
如果我们有0种颜色,那么显然我们可以不对任何点进行着色,所以k == 0就是这样。
对于k> 0,我们使用归纳法。
考虑包含所有点的区间。必须有一种颜色恰好出现一次。考虑这一点左边的点。这些点用k-1颜色着色,因此它们最多可以有2 ^(k-1)-1。
同样,右边最多有2 ^(k-1)-1。
总共最多可以有1 + 2 ^(k-1)-1 + 2 ^(k-1)-1 = 2 ^ k-1个k点的颜色。
2 ^ 10-1 = 1023,2 ^ 11-1 = 2047,所以这显示了你的情况下11种颜色的下限,而TonyK已经给出了一个结构,表明这可以实现。
答案 1 :(得分:3)
如果第n个点的颜色仅由n的二进制展开中的尾随零的数量确定,则满足条件。我们可以使用11种颜色,最多2047个点。
相反 - 我们可以用更少的点来做 - 是另一个问题。
15分示例:
Binary Trailing zeroes Colour
------ --------------- ------
1 0 blue
10 1 red
11 0 blue
100 2 green
101 0 blue
110 1 red
111 0 blue
1000 3 yellow
1001 0 blue
1010 1 red
1011 0 blue
1100 2 green
1101 0 blue
1110 1 red
1111 0 blue