首页 > 试题广场 >

是是非非

[编程题]是是非非
坎为水,险阳失道,渊深不测;离为火,依附团结,光明绚丽。
坎卦:水洊至,习坎;君子以常德行,习教事。一轮明月照水中,只见影儿不见踪,愚夫当财下去取,摸来摸去一场空。
离卦:明两作,离,大人以继明照四方。官人来占主高升,庄农人家产业增,生意买卖利息厚,匠艺占之大亨通。 
有一些石子堆,第 堆有 个石子。你和算卦先生轮流从任一堆中任取若干颗石子(每次只能取自一堆,并且不能不取),取到最后一颗石子的人获胜。 
算卦先生来问你,如果你先手,你是否有必胜策略?若是改动其中几个石子堆中石子的数量呢?

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


输出描述:
 行,输出每次操作之后先手是否有必胜策略。
如果有,输出  ,否则输出  。 
示例1

输入

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

输出

Kan
Kan
Li
Li

备注:



头像 白色L号谢谢
发表于 2020-07-07 15:09:35
nim博弈的基础上增加了修改,a ^ a = 0。所以每次修改的时候我们先异或上a[x]再异或上y,最后把a[x]变成y。判断异或和是不是0即可。 #include <bits/stdc++.h> #include <unordered_map> using namespac 展开全文
头像 小琢卷不动
发表于 2021-11-23 14:45:29
经典的 Nim 游戏。 对于原问题,我们认为当 XORi=1n ai=0\text{XOR}_{i=1}^{n}~a_i=0XORi=1n​ ai​=0 时先手必败,反之先手直接取掉等于 XORi=1n ai\text{XOR}_{i=1}^{n}~a_iXORi=1n 展开全文
头像 AIM2019
发表于 2022-05-11 19:34:24
由经典的NIM问题可知异或和非零必胜,但每次操作求异或和复杂度过高。问题关键在于变数操作可以转换为异或操作,异或值b=原值⊕\oplus⊕现值,由异或的结合律即可提出b,原异或和⊕\oplus⊕b就是结果。 AC代码: #include <iostream> using namespac 展开全文
头像 求求offer快来吧~
发表于 2020-01-14 15:56:13
001 题目描述: 坎为水,险阳失道,渊深不测;离为火,依附团结,光明绚丽。坎卦:水洊至,习坎;君子以常德行,习教事。一轮明月照水中,只见影儿不见踪,愚夫当财下去取,摸来摸去一场空。离卦:明两作,离,大人以继明照四方。官人来占主高升,庄农人家产业增,生意买卖利息厚,匠艺占之大亨通。 有一些石子 展开全文