移棋子游戏

问题描述

猫山大王和刘大姐在玩一个游戏。桌面上一行有n个格子,一些格子中放着棋子。猫山大王和刘大姐轮流选择如下方式中的一种移动棋子(图示中o表示棋子,*表示空着的格子):
1)当一枚棋子的右边是空格子的话,可以将这枚棋子像右移动一格。
**o*** -> ***o**
2)当一枚棋子的右边连续两个都有棋子,并且这个棋子往右边数第3格没有棋子,那么可以将这个棋子往右跳过那两个棋子
**ooo* -> ***oo*
当任何一枚棋子到达最右边的格子时,这枚棋子自动消失。当一方不能移动时,这方输。假设猫山大王和刘大姐都采取最优策略,猫山大王先走,谁将取胜?

输入格式

第一行一个整数T表示数据组数, 0 < T < 10。
之后T组数据,每组两行,
第一行n 表示格子个数,
第二行n个字符表示每个格子的情况,o表示有棋子,*表示空着。

输出格式

对于每组数据一个输出,M表示猫山大王赢,L表示刘大姐赢。

样例输入

4
2
*o
5
*o***
6
**o**o
14
*o***ooo**oo**

样例输出

L
M
M
L

提示

对于50%的数据, n <20。
对于100%的数据, n < 1000。

首先我们可以想到记忆化搜索,搜索所有的可能的情况,然而n=999的规模我们可以发现这么做并不可行

因此我们应该想一想更简单的方法

首先我们草稿纸演算可以发现,不论是第一种走法还是第二种走法,所有棋子到最右边的位置的距离和的奇偶性是必然会发生一次变化的。

第一次轮到猫山大王时,s是奇数,那么每次轮到猫山大王时s都是奇数。而当s是奇数时,s肯定>0,这时猫山大王总可以走最右边的棋子。也就是说当s为奇数时,总有棋子可以走。所以说,一开始若s为奇数,则猫山大王必胜。同理,若一开始s为偶数,则当刘大姐走的时候s总是奇数,所以猫山大王必败。

#include<iostream>
#include<cstdio>
using namespace std;
int t,n;
char c[1005];
int main(){cin>>t;while(t--){scanf("%d%s",&n,c+1);int i,sum=1;for(i=1;i<=n;i++)if(c[i]=='o')sum+=n-i;if(sum&1)puts("L");else puts("M");}
}

NKOI 3539 移棋子游戏[6月月赛题A]相关推荐

  1. [AcWing] 1319.移棋子游戏 博弈论 Sg函数板子题

    题目链接:1319.移棋子游戏 题解 好久没写博弈论的题了,写几道复习一下,博弈论SG主要由两大部分组成:SG函数和SG定理 SG(x)=mex(S),其中S是x的后继状态的SG函数值集合,mex(S ...

  2. 1319. 移棋子游戏(sg+图论(移棋子)邻接表)

    题目:https://www.acwing.com/problem/content/1321/ 给定一个有 N 个节点的有向无环图,图中某些节点上有棋子,两名玩家交替移动棋子. 玩家每一步可将任意一颗 ...

  3. AcWing 1319. 移棋子游戏

    sg函数是一张有向无环图 尼姆博弈对每一张图sg(值)进行游戏 就是加强版的集合尼姆博弈(集合尼姆博弈中拓展是根据集合可能的新状态),这里是回归本质,sg操作是对每个状态拓展出边,并通过出边sg值集合 ...

  4. [博弈论]移棋子游戏

    https://www.acwing.com/problem/content/1321/ 思路: 求所有棋子的sg异或之和, 记忆化搜索 得到当前结点后继的这些点的sg值之和,放到set里面(哈希表也 ...

  5. 2018.09.16 loj#10243. 移棋子游戏(博弈论)

    传送门 题目中已经给好了sg图,直接在上面跑出sg函数即可. 最后看给定点的sg值异或和是否等于0就判好了. 代码: #include<bits/stdc++.h> #define N 2 ...

  6. 博弈论sg函数——《移旗子游戏》《剪纸游戏》

    传送门:移棋子游戏 思路:按照sg函数定义,在这道题里面,不能移动的状态就是终点态,sg值设为0,其余所有的点的sg函数值就是属于其所有后继节点的sg函数值组成的集合里面非集合元素的最小的一个数字,也 ...

  7. csu-2018年11月月赛Round2-div1题解

    csu-2018年11月月赛Round2-div1题解 A(2191):Wells的积木游戏 Description Wells有一堆N个积木,标号1~N,每个标号只出现一次 由于Wells是手残党, ...

  8. --12月月赛题解--

    12月月赛题解 问题 A: 求区间最大值 题目描述 给你一个长度为n的序列{a_1,a_2-a_n},下标从1到n,Q个询问,每次询问给出一个L和R,你需要输出最大的a_i,(L<=i<= ...

  9. 【FOJ2207 11月月赛C】【DFS栈性质应用 离线处理】以撒的结合 从x到y路径上的第k个点 询问众多

     Problem 2207 以撒的结合 Accept: 30    Submit: 98 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Probl ...

  10. 安恒赛php_安恒11月月赛周周练writeup

    前言 11月月赛 完美错过时间,正好有周周练,基本都是一样月赛的web,记录下write up 手速要快 这题是10月月赛中的一题,直接看我上次的writeup:安恒月赛(十)web-2题writeu ...

最新文章

  1. retract手机版怎么登录服务器未响应,retract和retreat各自的用法以及它们的区别
  2. 以实用著称的《PHP与MySQL程序设计(第3版)》问世啦!
  3. 分治递归逆序数_[模板] 归并排序 逆序数 分治
  4. 软件常见基础问题总结
  5. Java 代码细节与优化(一)
  6. How to write journal papers?
  7. 如何用视频云技术,搞一个爆红的 “反应视频” 项目?
  8. php去除每行的重复文本,php删除文本文件中重复行的方法
  9. HtmlUnit优秀文章
  10. leetcode-3-Longest Substring Without Repeating Characters
  11. 集合A和集合B的并运算图示
  12. python断言语句失败_python断言语句
  13. 9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路
  14. iOS百度地图路径规划功能(对官网文档的理解)
  15. Power BI 客户端 安装 错误
  16. go文件服务器加密,gosignal: 使用 Golang 实现的端对端加密聊天软件 Signal 服务端...
  17. 使用Python连接阿里云物联网
  18. iOS App 签名的原理 App 重签名(三)
  19. 如何给SCI收录的文章分区?
  20. 任志强是出演“ 黄世仁”的最佳人选?

热门文章

  1. 怎么判断日出时间早晚_怎样判断一个地方的日出或日落时间
  2. 软考·网络工程师认证(第八章)
  3. 利用公共手机获取短信验证码
  4. macOS 内置的端口扫描工具
  5. 从山寨机看手机的未来
  6. 异步任务+JSON解析+ListView分页
  7. C++ string替换指定字符
  8. 迅雷下gho文件变成php,GHO格式文件转换成WIM格式文件
  9. Cesium中的primitive竖立流光飞线
  10. 2021年网络安全学习路线指导(含视频教程)