ARC151C 01 Game

题目链接:ARC151C 01 Game

\(SG\) 函数好题。

思路

考虑把原问题分成多个区间的不同问题,求 \(SG\) 在异或起来。

设:

1.\(SG_1(len)\) 长度为 \(len\),边界没有数字。

2.\(SG_2(len)\) 长度为 \(len\),只有一个边界有数字。

3.\(SG_3(len)\) 长度为 \(len\),两个边界都有相同数字。

4.\(SG_4(len)\) 长度为 \(len\),两个边界都有不同数字。

初始有 \(SG_1(0)=SG_2(0)=SG_4(0)=0,SG_3(0)=1\)。

因为 \(SG_3(0)\) 不存在,所以看做先手胜。

考虑枚举选择的点 \(i\),有:

\[SG_1(len)=\operatorname{mex}_{i=1}^{len}(SG_2(i-1) \oplus SG_2(len-i))
\]
\[SG_2(len)=\operatorname{mex}_{i=1}^{len}\operatorname{mex}(SG_2(i-1) \oplus SG_3(len-i),SG_2(i-1) \oplus SG_4(len-i))
\]
\[SG_3(len)=\operatorname{mex}_{i=1}^{len}\operatorname{mex}(SG_3(i-1)\oplus SG_3(len-i),SG_4(i-1) \oplus SG_4(len-i))
\]
\[SG_4(len)=\operatorname{mex}_{i=1}^{len}\operatorname{mex}(SG_3(i-1)\oplus SG_4(len-i),SG_4(i-1) \oplus SG_3(len-i))
\]

然后我们通过打表发现:

\[SG_1(len)=len\mod 2
\]
\[SG_2(len)=len
\]
\[SG_3(len)=1
\]
\[SG_4(len)=0
\]

这个可以也可以通过上述方程归纳证明。

CODE

#include<bits/stdc++.h>
using namespace std; #define ll long long const int maxn=2e5+5; ll n;
ll x[maxn]; int m;
int y[maxn]; int main()
{
scanf("%lld%d",&n,&m);
for(int i=1;i<=m;i++) scanf("%lld%d",&x[i],&y[i]);
x[0]=0,x[m+1]=n+1;
ll sg=0;
for(int i=0;i<=m;i++)
{
ll len=x[i+1]-x[i]-1;
if(i==0&&i==m) sg^=(len&1);
else if(i==0||i==m) sg^=len;
else if(y[i]==y[i+1]) sg^=1;
}
if(sg) printf("Takahashi");
else printf("Aoki");
}

ARC151C 01 Game的更多相关文章

  1. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

  2. 用Kotlin创建第一个Android项目(KAD 01)

    原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...

  3. Java企业实训 - 01 - Java前奏

    前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...

  4. Node.js 教程 01 - 简介、安装及配置

    系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...

  5. 0042 MySQL学习笔记-入门--01

    基本概念: 数据库DB(database): 数据的仓库,数据的集合,是数据的一种结构化的存储 数据库管理系统DBMS(database management system): 管理数据库的一套软件 ...

  6. Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录

    一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...

  7. ArtifactTransferException: Failure to transfer org.apache.openejb:javaee-api:jar:5.0-1

    最近在myeclipse上创建maven类型的web项目的时候,出现了一个错误. ArtifactTransferException: Failure to transfer org.apache.o ...

  8. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  9. 异步编程系列第01章 Async异步编程简介

    p { display: block; margin: 3px 0 0 0; } --> 2016.10.11补充 三个月过去了,回头来看,我不得不承认这是一系列失败的翻译.过段时间,我将重新翻 ...

  10. 【干货分享】前端面试知识点锦集01(HTML篇)——附答案

    一.HTML部分 1.浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层.表示层.行为层分别是:HTML.CSS.JavaScript作用:HTML实现页面结构,CSS完成页面的表现与风格 ...

随机推荐

  1. 【Python自动化】之利用JS操作页面滚动条(新)

    如何操作页面中的滚动条,有以下几个方法: 一.查找可见元素进行滚动页面(通用) 方法一: ①移动到元素element对象的"顶端",与当前窗口的"顶部"对齐(默 ...

  2. pikachu靶场 越权(水平越权+垂直越权)

    水平越权 A用户和B用户属于同一级别用户,但各自不能操作对方个人信息.A用户如果越权操作B用户个人信息的情况称为水行越权操作 三个用户 lucy/lili/kobe  密码都为123456 随便登录其 ...

  3. Python批量分割Excel后逐行做差、合并文件的方法

      本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件,首先依据某一列数据的特征截取我们需要的数据,随后对截取出来的数据逐行求差,并基于其他多个文件夹中同样大量 ...

  4. babel-preset-env与stage-x的使用指南

    babel介绍 babel总共分为3个阶段: 解析.转换和生成 babel本身不具有任何转换功能, 如果没有plugin,那么经过babel的代码和输入的是相同的. babel插件分为两种 语法插件: ...

  5. CSS – Dimension min-content, max-content, fit-content

    前言 无意间在 practice 的时候看到视频使用, 以前没有听过. 它有点像 Figma 的 hug content, 据说 CSS 2.1 也是有类似的概念, 只是没有被正式纳入 CSS 里. ...

  6. Identity – Authorize

    前言 Authorize 授权和 Identity Framework 关系不是很大. 虽然 Framework 有帮忙处理 Role, Claims 这些, 但这些只是整个 Authorize 小部 ...

  7. BFS 马的遍历————洛谷p1443

    马的遍历 题目描述 有一个 \(n \times m\) 的棋盘,在某个点 \((x, y)\) 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步. 输入格式 输入只有一行四个整数,分别为 ...

  8. [34](CSP 集训)CSP-S 联训模拟 1

    A 几何 重复若干次 -> 不能重叠,因此考虑直接暴力 DP 设 \(f_{i,j,k}\) 表示主串匹配到第 \(i\) 位(将前 \(i\) 位分别归为两类),其中 \(x\) 在重复了若干 ...

  9. [TK] HH的项链 离线树状数组解法

    实际上这题很难和树状数组联系起来,我感觉效率也不是很高,感觉不是正解 怎么使用树状数组 这道题我们很容易想到一点:同种物品在一个区间内只能出现一次,先不考虑别的问题,我们想出下面这种使用树状数组的思路 ...

  10. A Proof of Golden Section of Fibonacci Sequence

    Update on 2024/6/25 10:40 (UTF+8) : Add the Part Five and correct some words Hello, I'm glad to show ...