链接:https://www.nowcoder.com/acm/contest/86/E
来源:牛客网

题目描述

坎为水,险阳失道,渊深不测;离为火,依附团结,光明绚丽。
坎卦:水洊至,习坎;君子以常德行,习教事。一轮明月照水中,只见影儿不见踪,愚夫当财下去取,摸来摸去一场空。
离卦:明两作,离,大人以继明照四方。官人来占主高升,庄农人家产业增,生意买卖利息厚,匠艺占之大亨通。

有一些石子堆,第  堆有  个石子。你和算卦先生轮流从任一堆中任取若干颗石子(每次只能取自一堆,并且不能不取),取到最后一颗石子的人获胜。 
算卦先生来问你,如果你先手,你是否有必胜策略?若是改动其中几个石子堆中石子的数量呢?

输入描述:


第一行两个正整数 ,表示有 个石堆, 次操作。 
第二行 个整数,第 个数 表示第 个石堆初始有 个石子。 
接下去 行,每行两个正整数 ,表示把第 堆石子的个数修改成 。操作是累计的,也就是说,每次操作是在上一次操作结束后的状态上操作的。

输出描述:


 行,输出每次操作之后先手是否有必胜策略。
如果有,输出  ,否则输出  。 

输入

5 4
6 7 3 4 5
1 6
2 1
2 4
5 5

输出

Kan
Kan
Li
Li

备注:


利用异或运算,如果所有堆中的数异或的结果不为0,则先取者获胜。(这个好像叫什么奇异局势)

该题的思想可以看这里

一个比较详细的讲解取石子问题的博客

该题需要注意的是异或运算应该在输入后就进行,不能在后面更改元素后用循环来算,会TLE。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e6+10;
ll a[maxn];
int main()
{
ll n,q;
ll x,y;
ll sum=0;
scanf("%lld%lld",&n,&q);
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
sum=a[1];
for(int i=2;i<=n;i++)
{
sum=sum^a[i];
}//这步操作不能放在后面的循环中
while(q--)
{
scanf("%lld%lld",&x,&y);
ll mm=a[x]^y;//mm记录a[x]和y的异或值
a[x]=y;//更改a[x]的值
sum=sum^mm;
if(sum) printf("Kan\n");
else printf("Li\n");
}
return 0;
}

牛客小白月赛2 E:是是非非(尼姆博弈)的更多相关文章

  1. 牛客网 牛客小白月赛2 E.是是非非-尼姆博奕

    E.是是非非 链接:https://www.nowcoder.com/acm/contest/86/E 这个题就是尼姆博奕(我的队友小可爱很擅长这个) 代码: 1 //E 2 #include< ...

  2. 牛客小白月赛2 E 是是非非 【尼姆博弈】

    链接:https://www.nowcoder.com/acm/contest/86/E来源:牛客网 题目描述 坎为水,险阳失道,渊深不测:离为火,依附团结,光明绚丽. 坎卦:水洊至,习坎:君子以常德 ...

  3. 树的最长链-POJ 1985 树的直径(最长链)+牛客小白月赛6-桃花

    求树直径的方法在此转载一下大佬们的分析: 可以随便选择一个点开始进行bfs或者dfs,从而找到离该点最远的那个点(可以证明,离树上任意一点最远的点一定是树的某条直径的两端点之一:树的直径:树上的最长简 ...

  4. 牛客网 牛客小白月赛5 I.区间 (interval)-线段树 or 差分数组?

    牛客小白月赛5 I.区间 (interval) 休闲的时候写的,但是写的心情有点挫,都是完全版线段树,我的一个队友直接就水过去了,为啥我的就超内存呢??? 试了一晚上,找出来了,多初始化了add标记数 ...

  5. 牛客小白月赛8 - E - 诡异数字 数位DP

    牛客小白月赛8 - E - 诡异数字 题意: 求区间中,满足限制条件的数字的个数. 限制条件就是某些数字不能连续出现几次. 思路: 比较裸的数位DP, DP数组开一个dp[len][x][cnt] 表 ...

  6. 牛客小白月赛18 Forsaken给学生分组

    牛客小白月赛18 Forsaken给学生分组 Forsaken给学生分组 链接:https://ac.nowcoder.com/acm/contest/1221/C来源:牛客网 ​ Forsaken有 ...

  7. 牛客小白月赛18 Forsaken喜欢数论

    牛客小白月赛18 Forsaken喜欢数论 题目传送门直接点标题 ​ Forsaken有一个有趣的数论函数.对于任意一个数xxx,f(x)f(x)f(x)会返回xxx的最小质因子.如果这个数没有最小质 ...

  8. 牛客小白月赛19 E 「火」烈火燎原 (思维,树)

    牛客小白月赛19 E 「火」烈火燎原 (思维,树) 链接:https://ac.nowcoder.com/acm/contest/2272/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空 ...

  9. 【牛客小白月赛21】NC201604 Audio

    [牛客小白月赛21]NC201604 Audio 题目链接 题目大意: 给出三点 ,求到三点距离相等的点 的坐标. 解析 考点:计算几何基础. 初中蒟蒻表示不会什么法向量.高斯消元..qwq 方法一: ...

  10. 【牛客小白月赛21】NC201605 Bits

    [牛客小白月赛21]NC201605 Bits 题目链接 题目描述 Nancy喜欢做游戏! 汉诺塔是一个神奇的游戏,神奇在哪里呢? 给出3根柱子,最开始时n个盘子按照大小被置于最左的柱子. 如果盘子数 ...

随机推荐

  1. Eclipse 设置代码风格

    自动调整代码风格 快捷键Ctrl + Shift + F 或者 右键 source -> format 设置代码风格 window -> preference -> java -&g ...

  2. 解决SpringBoot更新数据到MySQL乱码问题

    怀疑数据库没有采用UTF8编码. DB也是UTF8格式,没有问题. 怀疑Hibernate连接字符串问题. application.properties修改为通过utf8连接mysql,但是问题依然没 ...

  3. 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(一)

    源自:http://blog.163.com/zwx_gis/blog/static/32434435201122193611576/ (主页:http://blog.163.com/zwx_gis/ ...

  4. codeforces 571a//Lengthening Sticks// Codeforces Round #317

    题意:三角形3条边,最多共添加ll长,问组成的合法三角形个数. 本来想用暴搜,觉得会超时就搜题解了.不过保证我解释得更清晰. 先计算ll长分配给3条边有几种分法?由于不分也是合法的,因此最后实际分出去 ...

  5. Android开发中需要注意哪些坑

    作为一个有两.三年Android应用开发经验的码农,自然会遇到很多坑,下面是我能够想起的一些坑(实践证明不记笔记可不是个好习惯),后面有想到其它坑会陆续补上. 1.在Android library中不 ...

  6. python-day10--文件处理

    1.文件:是操作系统提供的概念 2. open(r+'文件路径' , '打开方式' , '用什么字符编码')   #r 表示原始字符串 eg:open(r'C:\Users\13264\Desktop ...

  7. iOS UI-(多)视图控制器的生命周期、加载方法和模态视图方法以及屌丝方法

    #import "ViewController.h" #import "SecondViewController.h" @interface ViewContr ...

  8. dubbo 心跳

    HeartBeatTask 类封装了心跳定时任务,需要了解的是 provider 和 consumer 都有可能发送心跳. final class HeartBeatTask implements R ...

  9. POJ 2485 最小生成树

    2333333333 又是水题.prim模板直接水过.求最小生成树里的最大的边的权值. 附代码:// 如果我木猜错的话.是要求最小生成树的最大边值. #include<stdio.h>#i ...

  10. ETL设计详解

    ETL是BI项目最重要的一个环节,通常情况下ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败.ETL也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更 ...