CF78B Easter Eggs 题解

Content

有一个有 \(n\) 个点的环,你可以将其染成一种颜色。一共有 \(7\) 种颜色(ROYGBIV)可以选择。你的染色方案应该满足下面的要求:

  • 每一个点都要被染色,且 \(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;
}
posted @ 2021-12-16 11:41  Eason_AC  阅读(47)  评论(0)    收藏  举报