链接:https://ac.nowcoder.com/acm/contest/218/B
来源:牛客网

赞迪卡之声妮莎与奥札奇

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

「生命在各处成长。我的族人只是在寻找成长最旺的地方。」 ——妮沙瑞文
        奥札奇军团降临!赞迪卡陷入危机!无尽轮回钨拉莫和真理屠夫寇基雷带领着这群庞大的掠食者在赞迪卡肆意破坏。旅法师妮莎瑞文必须要阻止这一切。
        在赞迪卡时空的一角,有 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 ,寇基雷就无路可走了。
    备注:
    1 ≤ T ≤ 2000
    1 ≤ n ≤ 2000

解析

首先看完题第一感觉,蜜汁题目,然后反应过来是博弈,从n=1开始算,123分别是KUU胜利,从4开始,在这里引入四面体来等效点,比如
        从1到2的箭头用来表示此条边

然后此时轮到k走,可以发现k从2走到3和k从2走到4是一样的,所以假设k从2走到3,由于u是绝对聪明的,所以u的两个选择3->1和3->4,在做题的时候应该是分析两种情况,在这里只分析3->1,也就是必胜的情况,

当u从3->1时,k只有一种选择也就是1->4,在之后u就可以走4->2,让k无路可走,因为在这个过程中,k要么只有一种选择要么就走几个点都是等价的,所以u采取最佳策略的时候,k是没有机会胜利的,这也就是博弈的想法,当两个人都绝对聪明,全部采取最佳策略,最后的胜利者会是谁,分析此过程。
        所以整个题目在n较大的时候同理只需要把k逼入一个死角里就可以了,而这个是很简单u可以实现的策略,所以只有当n=1时k胜利,其余时候都是u胜利。

代码奉上:(最后有感想)

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
#include <iostream>
#include <string>
#include <time.h>
#include <queue>
#include <string.h>
#define sf scanf
#define pf printf
#define lf double
#define ll long long
#define p123 printf("123\n");
#define pn printf("\n");
#define pk printf(" ");
#define p(n) printf("%d",n);
#define pln(n) printf("%d\n",n);
#define s(n) scanf("%d",&n);
#define ss(n) scanf("%s",n);
#define ps(n) printf("%s",n);
#define sld(n) scanf("%lld",&n);
#define pld(n) printf("%lld",n);
#define slf(n) scanf("%lf",&n);
#define plf(n) printf("%lf",n);
#define sc(n) scanf("%c",&n);
#define pc(n) printf("%c",n);
#define gc getchar();
#define re(n,a) memset(n,a,sizeof(n));
#define len(a) strlen(a)
#define LL long long
#define eps 1e-6
using namespace std;
int main(){int T = 0;s(T);int n = 0;while(T --){s(n);if(n == 1){puts("Kozilek, Butcher of Truth");}else{puts("Ulamog, the Infinite Gyre");}}
}​

感想:

这道题目主要考察逻辑思维能力,在我自己做的过程中也曾想过是否与完全图的边数的奇偶有关,然后算到n=4的时候意识到无法形成一个一笔画图的时候否定了这个猜想,又想到了七桥问题,每个点的奇偶性影响是否可以’一笔画,在n=5的时候我算错算是k胜利,所以走了一些弯路,总而言之还是一道好题。

牛客练习赛31 B 赞迪卡之声妮莎与奥札奇(逻辑+博弈) B相关推荐

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

    链接:https://ac.nowcoder.com/acm/contest/218/B 来源:牛客网 奥札奇军团降临!赞迪卡陷入危机!无尽轮回钨拉莫和真理屠夫寇基雷带领着这群庞大的掠食者在赞迪卡肆意 ...

  2. 牛客练习赛31: D. 神器大师泰兹瑞与威穆(链表)

    链接:https://ac.nowcoder.com/acm/contest/218/D 来源:牛客网 题目描述 「只要我拉动绳线,你就得随之起舞.」          --泰兹瑞 泰兹瑞来到卡拉德许 ...

  3. 牛客练习赛31 C 无畏死灵术士莉莲娜与锁链面纱(dfs + 期望dp)

    太久没有做期望/概率dp,已锈... 大概就是说给你一个1到n的全排列,然后每次随机选择一个数字在不改变其他数字相对位置的前提下,把比他小的数字放在他前面,大的在后面.问期望几次能够使得这个序列有序. ...

  4. 牛客练习赛31 C.无畏死灵术士莉莲娜与锁链面纱(期望dp)

    传送门 其实没有那么复杂 发现如果先选择数字xxx,再选择数字yyy和 先选择数字yyy,再选择数字xxx没有区别,造成的影响是一样的 所以定义f[1<<20]f[1<<20] ...

  5. 牛客练习赛29 题解

    牛客练习赛29 A. 可持久化动态图上树状数组维护01背包 题解 这题跟标题没有任何关系- 贪心的使得负数删除的时候下标尽可能大,然后正数的时候下标尽可能小. 观察到每个数下标最大的时候就是它的初始下 ...

  6. 牛客练习赛#105(A-D)

    牛客练习赛#105 文章目录 牛客练习赛#105 A.切蛋糕的贝贝 B.抱歉,这没有集美 C.打牌的贝贝 D.点分治分点 A.切蛋糕的贝贝 题意 有一个正n边形,想通过下列的切法切成面积比为1:1:4 ...

  7. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  8. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  9. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

最新文章

  1. thinkcmf5调用指定分类的二级_Tengine快速上手系列教程amp;视频:基于Python API的图片分类应用入门丨附彩蛋...
  2. 流程图在登录后会增加操作选项的方法
  3. PHP公鸡五文钱,公鸡
  4. IAM页,IAM链表,分配单元
  5. Java Web学习总结(35)——HTTP状态码汇总
  6. 第 23 章 解释器模式
  7. 对抗搜索(Adversarial Games)——Min-max搜索 Aleph-beta剪枝搜索
  8. 使用pytorch实现crnn
  9. KEPServerEX 6 之 EX 6.11.718.0 发布说明
  10. Java字符流拷贝/复制文本文件,字节流拷贝文本文件乱码,很经典简便
  11. c51单片机期末复习个人总结1基础知识
  12. 动态规划——详细入门讲解
  13. torch.sqrt(lhs**2) 与torch.abs(lhs)在pytorch中的差异
  14. 2018年新媒体趋势解读:大航海时代结束,圈地运营开始
  15. php 微信小程序签到打卡,微信小程序实现打卡日历功能
  16. Pycharm控制台中文输出乱码怎么办?控制台输出乱码问题的解决方法
  17. [高数][高昆轮][高等数学上][第一章-函数与极限]01.映射与极限
  18. Matlab:数模13-多元回归分析模型
  19. 一步一步安装CentOS7(图文)
  20. IMX6ULL设备上面调试SDIOwifi。

热门文章

  1. python 收音机
  2. 微信公众平台开发之微喜帖
  3. echarts基本图例
  4. Exchange 2016的MAPI over HTTP简介
  5. 安装驱动显卡重启计算机,win7系统安装显卡驱动后电脑一直重启的解决方法
  6. windows系统日志查询
  7. w3cschool算法挑战记录1-11(数组截断算法挑战)
  8. 2018读书清单与情况
  9. java 刷新文件夹 代码_UpdateFile.java(更新指定文件夹的文件)作者:阿飞
  10. CentOS下安装dosBox