#12021. Who is the Thief? / 谁是窃贼
Who is the Thief? / 谁是窃贼
Problem J33: Who is the Thief? / 谁是窃贼
版权信息: · 逻辑枚举推理题
任务总览
任务名称 | 时间限制 | 内存限制 | 分数 |
---|---|---|---|
谁是窃贼 | 1 sec | 1024 MB | 10 points |
题目描述
公安人员正在审问 4 名盗窃案嫌疑人。已知:
- 这 4 人中 仅有一人是窃贼;
- 每个人要么是 诚实的,要么是 说谎的;
- 每人对公安人员做出了一句陈述:
陈述内容如下:
- 甲(A):“乙没有偷,是丁偷的。”
- 乙(B):“我没有偷,是丙偷的。”
- 丙(C):“甲没有偷,是乙偷的。”
- 丁(D):“我没有偷。”
输入格式
无输入。
输出格式
输出一行:
The thief is: X
其中 X
是 A
、B
、C
或 D
中的一个,表示真正的窃贼。
输入输出样例
输出示例
The thief is: D
题目分析与解法
✅ 已知条件:
- 仅一人是窃贼;
- 每人是“完全诚实”或“完全说谎”;
- 窃贼说谎,诚实人说真话;
- 判断哪一种配置使得 仅一人是窃贼,且说谎者仅有该人一位 成立。
✅ 解题思路:
- 枚举 A/B/C/D 为窃贼;
- 模拟每句话的真假(结合是否为窃贼身份);
- 判断是否只有该人说谎,其余三人都诚实。
时间复杂度分析
操作 | 复杂度 |
---|---|
枚举 4 种身份 | |
每次验证逻辑 | |
总复杂度 | ,非常快速 |