题目链接:https://codeforc.es/gym/101908/problem/B

题意:两个人玩游戏,有 n 块石头,初始坐标为(x,y),一次操作可以将一块石头移动到(x - u,y),(x,y - u)或者(x - u,y - u),坐标为(0,0)的石子不能移动,问先手赢还是输。

题解:显然移动石子不能移动到 x = 0,y = 0 或者 x = y 的直线上,否则下一个玩家通过一步就可以获胜,故求 sg 值的时候,遇到这些坐标上的点直接跳过,答案则为全部石子异或和,特批一下一开始是否有在 x = y 直线上的石子即可。

 #include <bits/stdc++.h>
#define sd(a) scanf("%d",&a)
#define sld(a) scanf("%lld",&a)
#define mst(a,b) memset(a,b,sizeof a)
#define pb push_back
#define mp make_pair
typedef long long ll;
using namespace std;
typedef pair<int,int> pii;
const int maxn = 1e3 + ;
int inf = 0x3f3f3f3f; bool vis[];
int sg[][]; void getsg() {
mst(sg, );
for(int i = ; i <= ; i++) {
for(int j = ; j <= ; j++) {
if(i == j) continue;
mst(vis, false);
int mx = max(i, j);
for(int k = ; k <= mx; k++) {
if(i > k && (i - k) != j) vis[sg[i - k][j]] = true;
if(j > k && (j - k) != i) vis[sg[i][j - k]] = true;
if(i > k && j > k) vis[sg[i - k][j - k]] = true;
}
for(int k = ; ; k++) {
if(!vis[k]) {
sg[i][j] = k;
break;
}
}
}
}
} int main() {
#ifdef local
freopen("data.txt","r",stdin);
#endif // local
// init();
getsg();
int n;
scanf("%d",&n);
int flag = ;
int ans = ;
for(int i = ; i < n; i++) {
int x,y;
scanf("%d%d",&x,&y);
if(x == y) flag = ;
ans ^= sg[x][y];
}
if(flag || ans) puts("Y");
else puts("N");
return ;
}

2018-2019 ACM-ICPC Brazil Subregional Programming Contest B. Marbles(博弈)的更多相关文章

  1. (寒假GYM开黑)2018-2019 ACM-ICPC Brazil Subregional Programming Contest

    layout: post title: 2018-2019 ACM-ICPC Brazil Subregional Programming Contest author: "luowenta ...

  2. 2018-2019 ACM-ICPC Brazil Subregional Programming Contest PART (10/13)

    $$2018-2019 ACM-ICPC Brazil Subregional Programming Contest$$ \(A.Slackline\ Adventure\) \(B.Marbles ...

  3. 2019-2020 ACM-ICPC Brazil Subregional Programming Contest (11/13)

    \(2019-2020\ ACM-ICPC\ Brazil\ Subregional\ Programming\ Contest\) \(A.Artwork\) 并查集,把检测区域能在一起的检测器放在 ...

  4. ACM ICPC, JUST Collegiate Programming Contest (2018) Solution

    A:Zero Array 题意:两种操作, 1 p v  将第p个位置的值改成v  2  查询最少的操作数使得所有数都变为0  操作为可以从原序列中选一个非0的数使得所有非0的数减去它,并且所有数不能 ...

  5. ACM ICPC, Amman Collegiate Programming Contest (2018) Solution

    Solution A:Careful Thief 题意:给出n个区间,每个区间的每个位置的权值都是v,然后找长度为k的区间,使得这个区间的所有位置的权值加起来最大,输出最大权值, 所有区间不重叠 思路 ...

  6. 2018-2019 ACM-ICPC Brazil Subregional Programming Contest

    A:留坑 B:二维sg函数,特判边界情况 //#pragma GCC optimize(2) //#pragma GCC optimize(3) //#pragma GCC optimize(4) / ...

  7. Gym.101908 Brazil Subregional Programming Contest(寒假自训第六场)

    这几天睡眠时间都不太够,室友晚上太会折腾了,感觉有点累,所以昨天的题解也没写,看晚上能不能补起来. B . Marbles 题意:给定N组数(xi,yi),玩家轮流操作,每次玩家可以选择其中一组对其操 ...

  8. 2013-2014 ACM-ICPC Brazil Subregional Programming Contest 题解

    [题目链接] 这场比赛题面英文都好长... ... A - Zero or One 模拟. #include <bits/stdc++.h> using namespace std; in ...

  9. Codeforces Gym101473 A.Zero or One (2013-2014 ACM-ICPC Brazil Subregional Programming Contest)

    代码: #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #i ...

随机推荐

  1. 【贪心科技】贪心科技内容合伙人关于AI公司及创业的演讲笔记

    贪心科技内容合伙人关于AI公司及创业的演讲笔记 视频 目录 一.投资角度对 AI 的两个基本认知 二.简单分析 AI 公司的两个纬度四个层面 三.AI 垂直行业应用的三点中美对比 四.给创业者的四个建 ...

  2. Redis-负载均衡

    摘要 在nginx里面配置一个upstream,然后把相关的服务器ip都配置进去.然后采用轮询的方案,然后在nginx里面的配置项里,proxy-pass指向这个upstream,这样就能实现负载均衡 ...

  3. 基于DBMS_METADATA.GET_DDL函数批量导出索引的创建语句

    /* 首先要说的DBMS_METADATA.GET_DDL是个好函数呀!新项目不知道哪个缺心眼建的同构库,只是见了表结构,并没有健非主键外的索引,领导让追加一版,以前只是会用视图拼sql创建,今天有学 ...

  4. java-监听器(Listener)

    监听器:用于监听web应用中某些对象.信息的创建.销毁等动作,服务器会自动调用相应的方法进行处理.常用于统计在线人数,初始化系统参数等. Javaweb监听器主要监听对象有ServletContext ...

  5. Error starting daemon: error initializing graphdriver: devmapper: Device docker-thinpool is not a thin pool

    Error starting daemon: error initializing graphdriver: devmapper: Device docker-thinpool is not a th ...

  6. 2-MySQL DBA笔记-MySQL安装部署和入门

    第2章 MySQL安装部署和入门 第1章介绍了MySQL的一些基础知识,本章将为读者介绍MySQL的部署.安装及一些常用命令和参数的设置.2.1 如何选择MySQL版本 在选择MySQL的版本时,要根 ...

  7. T4模板生成文件要点记录

    可以使用 $(variableName) 语法引用 Visual Studio 或 MSBuild 变量(如 $(SolutionDir)),以及使用 %VariableName% 来引用环境变量.介 ...

  8. C#/.net中出现 "GDI+中发生一般性错误"解决方案

    有时我们在读取本地图片,调用 Image.Save() 方法,将其另保存为其他格式时,经常会碰到一个错误:“GDI+中发生一般性错误”:一般出现这种错误有 3 种可能: 1.保存路径不存在或者错误: ...

  9. HTML给标题栏添加图标

    <link rel="icon" href="images/logo.icon" type="image/x-icon"> 也可 ...

  10. bootstrap 处理警告

    $("#id").bootstrapValidator({}).on('success.field.bv', function (e, data) { })