P7608 [THUPC 2021] 挑战图灵奖

题目背景

图染色问题是这样的——给定一个 $n$ 个点,$m$ 条边的图,要求将每个点染上一种颜色,满足任意有边相连的两个点颜色不同,问最少需要多少种颜色。众所周知,图染色是 NPC 问题之一,如果有人能在多项式时间内解决图染色问题,那就相当于证明了 P = NP,恭喜你,下一位图灵奖得主非你莫属!

题目描述

今天,你的好朋友——敏珂找到了你,宣称他证明了半个图染色问题,希望你帮他看看他的做法对不对,如果你能帮他验证,他会考虑与你分享图灵奖的奖金。敏珂宣称自己解决的问题是这样的:对于一个 $n$ 个点的无向图,图上所有节点编号为 $1,2,\ldots, n$,两点之间有连边,当且仅当两点编号在模 $n$ 意义下相差不超过 $k$,即 $(x,y)$ 之间有一条无向边,当且仅当 $x \neq y$ 且存在 $i$ 满足 $1 \le i \le k$, $$(x+i) \equiv y \pmod n$$ 或 $$(y+i) \equiv x \pmod n $$ ,他能够快速求出这个图的染色数。作为评审,你只需要解决一个判定性问题——对于每组数据,敏珂会给出三个正整数 $n$,$k$ 和 $x$,表示在给定 $n$ 和 $k$ 时($n, k$ 的意义如上文所述),他认为这个图的**染色数**是 $x$,你需要判断他的答案是否正确。 如果你认为他的答案是**正确**的,输出一行 `Correct, but it doesn't necessarily mean that you can win the Turing Award.`;如果你认为他的答案是**错误**的,在第一行输出 `Wrong, don't cheat me, you are too far away from the Turing Award.`。为了让你的答案更有信服力,你还需要在第二行输出一个字符 `0` 或 `1`,`0` 表示你认为敏珂的答案小于这个图的实际染色数,`1` 表示你认为他的答案大于这个图的实际染色数;如果你认为这个问题**以当下计算机算力无法作出准确判断**,输出一行 `The problem is unsolvable, please stop cheating me, Mr.Minke.`。

输入格式

输出格式

说明/提示

**【样例解释】** 很显然,给 $1 \sim 6$ 号点分别染色为 $1, 2, 3, 1, 2, 3$ 是可行的,所以 $n = 6$,$k = 2$ 情况下对应的染色数为 $3$。 **【提示】** 1. 如果没有 idea,请再次阅读题面给的数据范围,也许能对解题有一些帮助。 2. Hint 1 可能没有用。 **【题目来源】** 来自 2021 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2021)。 题解等资源可在 [https://github.com/yylidiw/thupc_1/tree/master](https://github.com/yylidiw/thupc_1/tree/master) 查看。