列表

详情


NC20893. 赞迪卡之声妮莎与奥札奇

描述

「生命在各处成长。我的族人只是在寻找成长最旺的地方。」               ——妮沙瑞文


       奥札奇军团降临!赞迪卡陷入危机!无尽轮回钨拉莫和真理屠夫寇基雷带领着这群庞大的掠食者在赞迪卡肆意破坏。旅法师妮莎瑞文必须要阻止这一切。
       在赞迪卡时空的一角,有 n 个寇族的部落。为了抵御奥札奇的进攻,这些部落之间联系密切。在任意两个部落之间都有一条直接道路相连接。换句话说,这 n 个部落与若干条道路构成了一张完全图。
       现在,奥札奇军团已经占领了 1 号寇族部落并停留在此处。而钨拉莫与寇基雷两王却开始了游戏(伊莫库大姐快来管管)。游戏的规则是这样的:钨拉莫与寇基雷两王轮流带领奥札奇军团移动一次。每次可以从一个寇族部落通过一条未被腐蚀的道路移动到另一个寇族部落。任何移动必须在这 n 个寇族部落及其道路中进行。由于奥札奇对法术力的吞噬,奥札奇军团行经的道路都会被腐蚀。最后,在规则的限制下,奥札奇军团将无路可走。此时,将带领军团进行下一步移动的奥札奇之王将输掉这个游戏。钨拉莫先手。
       钨拉莫与寇基雷作为奥札奇三祖中的两者,自然拥有超高的智力。所以你可以认为,他们都将以最优决策进行游戏。
       游戏的赢家将率领军队与妮莎作战,而妮莎还在赶来的路上。所以请你先观察这个游戏,到时便可以告诉妮莎谁会是她的对手。

输入描述

本题有多组测试数据。

第一行一个正整数 T ,表示数据组数。

接下去 T 行,每行一个数 n ,表示寇族部落的个数。

输出描述

输出共 T 行,每行一个字符串 "Ulamog, the Infinite Gyre" 或 "Kozilek, Butcher of Truth" 表示胜利者(去掉括号)。前者为无尽轮回钨拉莫,后者为真理屠夫寇基雷。

示例1

输入:

2
1
3

输出:

Kozilek, Butcher of Truth
Ulamog, the Infinite Gyre

说明:

- 当 n=3 时,钨拉莫可以率领军团从 1 走到 2 ,之后  的边不能再走了。
- 下一步寇基雷只能带领军团移动至 3 ,之后  的边不能再走了。
- 最后钨拉莫只要将军团移回 1 ,寇基雷就无路可走了。

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 10ms, 内存消耗: 376K, 提交时间: 2020-08-18 20:38:37

#include<iostream>
using namespace std;
int main(){
	int T,n;
	cin>>T;
	while(T--)
        cin>>n,cout<<(n==1?"Kozilek, Butcher of Truth":"Ulamog, the Infinite Gyre")<<endl;
return 0;
}

Python(2.7.3) 解法, 执行用时: 41ms, 内存消耗: 2912K, 提交时间: 2018-11-16 21:56:28

T = (input())

while T > 0:
    T = T - 1
    n = int(input())
    if n == 1:
        print('Kozilek, Butcher of Truth')
    else:
        print('Ulamog, the Infinite Gyre')

Python3(3.5.2) 解法, 执行用时: 31ms, 内存消耗: 3408K, 提交时间: 2020-08-18 22:30:21

for i in range(int(input())):
    n=int(input())
    print("Kozilek, Butcher of Truth" if n==1 else "Ulamog, the Infinite Gyre")

pypy3 解法, 执行用时: 135ms, 内存消耗: 27304K, 提交时间: 2022-04-16 18:33:13

for T in range(int(input())):
    print("Kozilek, Butcher of Truth" if int(input())==1 else "Ulamog, the Infinite Gyre")

上一题