BZOJ3298: [USACO 2011Open]cow checkers 威佐夫博弈
Description
Input
Output
第1到T行:包含“Farmer John”或者是“Bessie”,表示谁赢了这轮游戏。
Sample Input
1
1 1
Sample Output
Solution
威佐夫博弈板子(套公式$\frac{\sqrt{5}+1}{2}$)
把横坐标抽象成一堆石头,纵坐标抽象成一堆石头就行了
然后如果不知道威佐夫博弈这玩意的话其实可以用必胜态必败态来推一下
可以画个图什么的,把前几个必败态找出来,然后会发现对于每一列,必败态仅有一点,然后这些点都沿着对角线对称
所以就递推一下必败态就可以了
威佐夫博弈做法
#include <bits/stdc++.h>
using namespace std ;
int n , m , t ;
int main() {
int a , b ;
scanf( "%d%d%d" , &a , &b , &t ) ;
double y = ( sqrt( ) + ) / ;
while( t -- ) {
scanf( "%d%d" , &n , &m ) ;
if( m < n ) swap( m , n ) ;
int x = ( m - n ) * y ;
if( x == n ) puts( "Farmer John" ) ;
else puts( "Bessie" ) ;
}
}
递推做法
#include <bits/stdc++.h>
using namespace std ;
const int N = 1e6 + ;
int ans[ N ] ;
int main() {
ans[ ] = ;
int tmp = ;
for( int i = ; i < N ; i ++ ) {
if( ans[ i ] ) continue ;
ans[ i ] = ans[ tmp ] + i - tmp + ;
tmp = i ;
if( ans[ i ] < N - ) ans[ ans[ i ] ] = i ;
}
int n , m , t ;
scanf( "%d%d%d" , &n , &m , &t ) ;
while( t -- ) {
int a , b ;
scanf( "%d%d" , &a , &b ) ;
a ++ ; b ++ ;
if( ans[ a ] == b || ans[ b ] == a ) puts( "Farmer John" ) ;
else puts( "Bessie" ) ;
}
}
BZOJ3298: [USACO 2011Open]cow checkers 威佐夫博弈的更多相关文章
- BZOJ3298[USACO 2011Open]cow checkers——威佐夫博弈
题目描述 一天,Besssie准备和FJ挑战奶牛跳棋游戏.这个游戏上在一个M*N的棋盘上, 这个棋盘上在(x,y)(0<=x棋盘的左下角是(0,0)坐标,棋盘的右上角是坐标(M-1,N-1). ...
- BZOJ3298: [USACO 2011Open]cow checkers(佐威夫博弈)
3298: [USACO 2011Open]cow checkers Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 195 Solved: 96[S ...
- 3298: [USACO 2011Open]cow checkers
3298: [USACO 2011Open]cow checkers Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 65 Solved: 26[Su ...
- bzoj 3298: [USACO 2011Open]cow checkers -- 数学
3298: [USACO 2011Open]cow checkers Time Limit: 10 Sec Memory Limit: 128 MB Description 一天,Besssie准备 ...
- 【bzoj3298】[USACO 2011Open]cow checkers(博弈论)
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3298 博弈论经典结论题,我也没什么好说的.matrix67大佬比我想得深入的多:捡石子 ...
- 【hdu5973】高精度威佐夫博弈
题意:输入a, b表示两堆石头数目,威佐夫博弈,问:先手胜负? a, b <= 1e100. 高精度.当a > b时, a = (a-b)*黄金分割比 时是先手败状态.因为a, b < ...
- nim3取石子游戏 (威佐夫博弈)
http://www.cnblogs.com/jackge/archive/2013/04/22/3034968.html 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有 ...
- HDU 5973 Game of Taking Stones 威佐夫博弈+大数
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5973 Game of Taking Stones Time Limit: 2000/1000 MS ...
- HD 2177(威佐夫博弈 入门)
取(2堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
随机推荐
- linux find 命令
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- "context:annotation-config" and "context:component-scan"
1.<context:annotation-config/>注册多个处理器 <context:annotation-config/>作用是向 Spring 容器注册 Autow ...
- gradle多工程依赖
多工程依赖:http://blog.csdn.net/w8452960/article/details/53415415 https://www.cnblogs.com/softidea/p/4525 ...
- django 中的render和render_to_response()和locals()
1. django中的render context在Django里表现为 Context 类,在 django.template 模块里. 它的构造函数带有一个可选的参数: 一个字典映射变量和它们的值 ...
- POJ:Dungeon Master(三维bfs模板题)
Dungeon Master Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16748 Accepted: 6522 D ...
- 3:4 OGNL 表达式二
总结: 一:ActionContext的结构: 1:set标签创建的对象也是作为非值栈对象. 2:(非值栈的存储都是以键值对的方式存的.) [问非值栈的 User对象] [用例] 关于request: ...
- activemq 消息队列服务器
ActiveMQ 安装配置 更多 安装 前置条件:1)安装JDK:2)配置 JAVA_HOME 环境变量,确保 echo $JAVA_HOME 输出JDK的安装路径 下载:wget http://ww ...
- thymeleaf 配置
thymeleaf,官网文档中,那个配置有误(估计是代码更新了但是文档没有更新).应该是这样的- <bean id="templateResolver" class=&quo ...
- Impala和Hive的关系(详解)
Impala和Hive的关系 Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中.并且im ...
- pandas练习(二)------ 数据过滤与排序
数据过滤与排序------探索2012欧洲杯数据 相关数据见(github) 步骤1 - 导入pandas库 import pandas as pd 步骤2 - 数据集 path2 = ". ...