【BZOJ2463】谁能赢呢?(博弈论)
【BZOJ2463】谁能赢呢?(博弈论)
题面
题解
洛谷上对于难度的评级我总觉有些问题。
很多人按照代码难度而并非思维难度在评级,导致很多评级很不合理啊。。。
不说废话了。。
对于一个\(n*n\)的棋盘,我们可以考虑用\(1\times 2\)的骨牌来进行覆盖。
显然对于\(n\)为奇数不能覆盖满,\(n\)为偶数能够覆盖满。
那么对于偶数局面,我们出发点一定是一个骨牌的一端,那么无论先手只需要移动到骨牌的另外一端去就好了,对于后手而言,因为不能回头,所以必定会走到一个新的骨牌上,而先手一定可以移动到骨牌的另外一端,那么一定是后手先无路可走。
同理对于奇数局面,我们可以认为出发点不被骨牌覆盖,那么无论先手走到了哪个骨牌的一端,后手只需要按照上述策略走就没有任何问题了。
总的来说其实本质上是一个二分图博弈。
#include<cstdio>
inline int read()
{
int x=0;bool t=false;char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=true,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return t?-x:x;
}
int main()
{
while(int n=read())puts((n&1)?"Bob":"Alice");
return 0;
}
【BZOJ2463】谁能赢呢?(博弈论)的更多相关文章
- BZOJ2463 谁能赢呢?
Description 小明和小红经常玩一个博弈游戏.给定一个n×n的棋盘,一个石头被放在棋盘的左上角.他们轮流移动石头.每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的 ...
- [bzoj2463]谁能赢呢
我们通过观察可以发现,当n为偶数时,一定可以转化为一种先手必胜态,即棋盘可以被骨牌所覆盖, 如果n是奇数,那么去掉一格后一定能被1*2的骨牌覆盖,但是先手从左上角走,就进入了这个S态(必胜态),那么和 ...
- [OI笔记]每周刷题记录
一些题库: bzoj.uoj.luogu(洛谷).CF.loj.hdu.poj.51nod 下面是一些近期的做题记录 省选爆炸-然后大概就先这样了,要回去读一段时间文化课,如果文化课还不错的话也许还会 ...
- CSU-2220 Godsend
题目链接 http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2220 题目 Description Leha somehow found ...
- 清北学堂提高组突破营游记day6
还有一天就结束了..QWQ 好快啊. 昨天没讲完的博弈论DP: 一个标准的博弈论dp,一般问的是是否先手赢. 博弈论最关键的问题:dp过程. 对于一个问题,一定有很多状态,每个状态可以转移到其他的一些 ...
- [bzoj2463][中山市选2009]谁能赢呢?_博弈论
博弈论 bzoj-2463 中山市选-2009 题目大意:题目链接. 注释:略. 想法: 如果$n$是偶数的话就可以被多米诺骨牌恰好覆盖,这样的话只需要先手先走向(1,1)对应的第二段,后者必定会将棋 ...
- BZOJ2463[中山市选2009]谁能赢呢?——博弈论
题目描述 小明和小红经常玩一个博弈游戏.给定一个n×n的棋盘,一个石头被放在棋盘的左上角.他们轮流移动石头.每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问 ...
- 【博弈论】bzoj2463 [中山市选2009]谁能赢呢?
∵都是最优操作 ∴n*n=偶数时Bob赢,否则Alice赢 n*n的奇偶性等价于n的奇偶性. #include<cstdio> using namespace std; int n; in ...
- bzoj2463: [中山市选2009]谁能赢呢?(博弈论)
2463: [中山市选2009]谁能赢呢? 题目:传送门 题解: 水体! n为偶数的话必能被1*2的矩形覆盖,那么因为一开始在左上角,所以先手一定可以先组成一个矩形,那么先手肯定必胜! n为奇数和上面 ...
随机推荐
- python继承与多继承
1.类与对象里的父类与子类(继承): 类的继承主要是指自子类对于之前父类的方法的继承,如果子类里面写了父类里的方法,则它会将父类里的方法覆盖掉,从而不能再调用到父类的方法. 2.为了解决父类与子类里的 ...
- double类型四舍五入保留两位小数
double x; int(x * 100 + 0.5) /100; 通过int强制转换截去后面的位数,实现两位小数保存, 由于强制转换直接把后面的信息截去,所以要想五入需要加0.5.
- linux_connect_mysql
原文来自 https://www.cnblogs.com/lywy510/p/3615710.html #include <stdio.h> #include <stdlib.h&g ...
- Spring入门学习笔记(1)
目录 Spring好处 依赖注入 面向面编程(AOP) Spring Framework Core Container Web Miscellaneous 编写第一个程序 IoC容器 Spring B ...
- python—多任务版udp聊天机器人
将多任务(多线程)引入到udp聊天机器人,可以实现同时发送消息和接收消息 import socket import threading def udp_send(udp_socket,ip,port) ...
- swoole中退出、异常与错误的处理笔记
关于PHP这方面的知识 可以看 https://www.cnblogs.com/zyf-zhaoyafei/p/6928149.html 进行补课 然后下面记录一下使用swoole的时候需要注意的地方 ...
- 时间戳使用的bug,你见过么
博主本人前几天给公司项目里写了个禁言和解除禁言的功能,项目中涉及到对时间的处理,因为学得时候也没很注意,就按自己的思路去写了,运行起来发现了一个天大的bug,就是写的延后一年尽然,刚开始就执行了,而且 ...
- Daily Scrum 11.18
今日完成任务: 1.在提问问题的时候为问题创建索引 2.解决了修改个人资料后刷新没有更新的问题 3.初步加入了采纳功能(没完善UI设计) 遇到困难:创建索引之后,跳转到主页,需要重新登录,找了半天不知 ...
- 第二篇——VC++简单随机四则运算
目标:编写最简单的四则运算,类似A+B=C: 想法:建立一个Win32控制台应用程序,A和B用随机数表示,运算符号用0~3的数字对应,然后计算并输出即可: 具体过程: 利用函数rand(),返回一个0 ...
- 团队作业4Alpha冲刺(真.三英战吕布团队)
第一天 2018/6/13 1.1 今日完成任务情况以及遇到的问题. 1.1.1:完成前台部分界面优化,后台进行代码优化 1.1.2团队前台部分js.jquery部分功能实现有难度. 1.2 明天任务 ...