CF78B Easter Eggs 题解
Content
有一个有 \(n\) 个点的环,你可以将其染成一种颜色。一共有 \(7\) 种颜色(R,O,Y,G,B,I,V)可以选择。你的染色方案应该满足下面的要求:
- 每一个点都要被染色,且 \(7\) 种颜色都要用上。
- 任何四个相邻的蛋都应当是是不同种颜色。
求一种满足上述要求的方案。
数据范围:\(7\leqslant n\leqslant 100\)。
Solution
很显然,如果 \(n<7\),那么显然没有满足条件的方案,又因为数据范围给出 \(n\geqslant 7\),所以一定会有满足条件的方案。
接下来考虑如何构造。我们不妨将前 \(n-3\) 个点循环涂上前 \(4\) 种颜色,如 ROYGROYG...,最后三个点再去填剩下三个颜色 BIV。可以发现无论 \((n-3)\mod 4\) 的余数是什么,这样的填色方案一定能够满足题目要求。
Code
int n;
const string s = "ROYGBIV";
int main() {
n = Rint;
F(i, 0, n - 4) putchar(s[i % 4]);
F(i, 4, 6) putchar(s[i]);
return 0;
}

浙公网安备 33010602011771号