CF78B Easter Eggs 题解
阅读原文时间:2023年07月08日阅读:1

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

  • 每一个点都要被染色,且 \(7\) 种颜色都要用上。
  • 任何四个相邻的蛋都应当是是不同种颜色。

求一种满足上述要求的方案。

数据范围:\(7\leqslant n\leqslant 100\)。

很显然,如果 \(n<7\),那么显然没有满足条件的方案,又因为数据范围给出 \(n\geqslant 7\),所以一定会有满足条件的方案

接下来考虑如何构造。我们不妨将前 \(n-3\) 个点循环涂上前 \(4\) 种颜色,如 ROYGROYG...,最后三个点再去填剩下三个颜色 BIV。可以发现无论 \((n-3)\mod 4\) 的余数是什么,这样的填色方案一定能够满足题目要求。

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;
}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章