洛谷 P3024:[USACO11OPEN] Cow Checkers S ← 威佐夫博弈
【题目来源】https://www.luogu.com.cn/problem/P3024【题目描述】有一天Bessie 准备玩一个叫做奶牛跳棋的游戏来挑战 Farmer John。这个游戏的棋盘大小为 M×N。最初棋盘上只有一个棋子在 (X,Y)棋盘的左下角坐标是 (0,0)右上角的坐标是 (M−1,N−1)。每次游戏 Bessie 都是先手之后两个人轮流进行操作。每次操作可以在以下三种移动中选择一种1向左走任意步。2向下走任意步。3向左走 k 步然后向下走 k 步k 为任意能保证不走出棋盘的正整数。首个无法操作的人为败者。游戏共有 T 次每次都会给出一个新的坐标 (X,Y)请输出每一轮胜者的名字。【输入格式】第 1 行两个用空格隔开的正整数代表 M 和 N。第 2 行一个正整数代表 T。第 3 行到第 (T2) 行分别有两个空格隔开的非负整数代表 XY。​​​​​​​【输出格式】共 T 行每一行输出那一轮的胜者。​​​​​​​【输入样例】3 311 1【输出样例】Bessie【数据范围】保证 1≤M,N≤10^60≤XM0≤YN1≤T≤10^3。【算法分析】● “洛谷 P3024 [USACO11OPEN] Cow Checkers S”本质就是威佐夫博弈的“棋盘平移版”。这是因为把两维坐标 (x, y) 看成两堆石子数量棋子在 (x, y)每次可以在以下三种操作中选择一种。1向左走任意步 → x 减小对应从一堆取石子2向下走任意步 → y 减小对应从另一堆取石子3向左走 k 步然后向下走 k 步 → x-k, y-k对应两堆同时取 k 个谁先到 (0,0) 谁赢。● 威佐夫博弈是一种两堆石子的公平组合博弈双方轮流操作既可以从任意一堆取走至少一颗石子也可以从两堆同时取走同等数量的石子取走最后一颗石子者获胜。威佐夫博弈的先手必败态也就是奇异局势可以由黄金分割比φ(1sqrt(5))/2刻画。即对于局面 (a,b)设 a≤b两堆石子的差值为 kb-a若⌊k・φ⌋等于较小数 a则该局面为先手必败态否则先手必胜。●黄金分割比φ 是无理数浮点数无法保存其精确值只能保存近似值。当差值 k 很大时乘法运算会把浮点数的微小固有误差放大。即 k・φ 的浮点计算结果会略低于数学上的真实整数。同时C 强制类型转换long long对浮点数采取直接截断小数部分的规则并不会四舍五入此时就会得到比正确值小 1 的整数造成答案错误WA。因此本题本题采用long double配合sqrtl()提升有效存储位数将误差压缩到不会改变整数部分的范围以此通过全部测试数据。例如k・φ 的数学真值为 100000000.00000000受浮点近似误差影响计算机计算得到 99999999.99999998。此外C 的 (long long) 强制转换直接截断小数部分于是 (long long)(99999999.99999998) 得到 99999999最终算出的 ⌊k・φ⌋ 相比真实数学结果少 1导致判题错误。补充备注该现象不是 double 一定会发生是大数场景下有概率发生。long double 也不是绝对无误差只是本题数据范围下误差不足以改变整数部分。【算法代码】#includebits/stdc.h using namespace std; typedef long long LL; int main() { ios::sync_with_stdio(0); cin.tie(0); int m,n,T; cinmnT; while(T--) { LL a,b; cinab; if(ab) swap(a,b); long double phi(1.0Lsqrtl(5.0L))/2.0L; LL k(LL)((b-a)*phi); if(ka) coutFarmer John\n; else coutBessie\n; } return 0; } /* in: 3 3 1 1 1 out: Bessie */【参考文献】https://blog.csdn.net/hnjzsyjyj/article/details/163782250https://www.luogu.com.cn/problem/solution/P3024

相关新闻

2026年7月鄂尔多斯市新房价格深度分析报告

2026年7月鄂尔多斯市新房价格深度分析报告

一、报告背景与数据说明本报告基于2026年7月鄂尔多斯市新房实际成交案例,结合网签备案数据、售楼处成交记录及中介机构反馈,对当前新房市场价格水平、区域分化、产品结构与走势预判进行深度分析。数据覆盖东胜区、康巴什区、伊金霍洛旗(阿勒腾…

2026/9/13 8:04:38 阅读更多 →
2026年7月鞍山市新房价格深度分析报告

2026年7月鞍山市新房价格深度分析报告

一、报告摘要本报告基于2026年7月鞍山市新房市场实际成交案例,从成交价格、区域分布、户型结构、购房人群特征等维度进行深度分析。数据显示,2026年7月鞍山市新房成交均价为每平方米6280元,环比上涨1.2%,同比上涨3.5%。其中&#…

2026/9/17 2:42:25 阅读更多 →
扩展你的编辑器:AztecEditor-iOS 插件系统架构深入解析与自定义插件开发教程

扩展你的编辑器:AztecEditor-iOS 插件系统架构深入解析与自定义插件开发教程

扩展你的编辑器:AztecEditor-iOS 插件系统架构深入解析与自定义插件开发教程 【免费下载链接】AztecEditor-iOS A reusable native iOS visual HTML text editor component. 项目地址: https://gitcode.com/gh_mirrors/az/AztecEditor-iOS AztecEditor-iOS 是…

2026/9/18 1:00:52 阅读更多 →

最新新闻

gogcli Drive 审计命令实战:用 `gog drive tree/du/inventory/audit` 做只读的清理规划与权限排查

gogcli Drive 审计命令实战:用 `gog drive tree/du/inventory/audit` 做只读的清理规划与权限排查

gogcli Drive 审计命令实战:用 gog drive tree/du/inventory/audit 做只读的清理规划与权限排查 【免费下载链接】gogcli Google Workspace in your terminal. 项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli 本指南围绕 gogcli 的 Drive 审计…

2026/9/18 6:07:14 阅读更多 →
MiroFish:基于真实库结构的测试数据生成与脱敏实践

MiroFish:基于真实库结构的测试数据生成与脱敏实践

第一次在项目列表里看到 MiroFish 这个名字,我盯着它看了十几秒,脑子里第一反应是把它拆成两截去看。Miro 显然是 mirror 的口语化缩写,Fish 在测试圈里几乎是个约定俗成的梗——数据工厂。这两截拼在一起,指向的东西其实相当明确…

2026/9/18 6:07:14 阅读更多 →
Gemini 3.8 Flash实测:从API接入到业务落地的完整指南

Gemini 3.8 Flash实测:从API接入到业务落地的完整指南

这两年大模型迭代速度快到让人麻木,但说实话,真正让我愿意抽出完整周末来折腾的版本并不多。这次拿到 Gemini 3.8 Flash 的体验入口时,我的第一反应是:又是个"小版本升级"吧。然而实测一天下来,我必须承认&a…

2026/9/18 6:07:14 阅读更多 →
AMCT 结构化剪枝实战指南:基于 amct_pytorch.pruning 的 Dense FFN / CNN / MoE 通道与专家剪枝

AMCT 结构化剪枝实战指南:基于 amct_pytorch.pruning 的 Dense FFN / CNN / MoE 通道与专家剪枝

AMCT 结构化剪枝实战指南:基于 amct_pytorch.pruning 的 Dense FFN / CNN / MoE 通道与专家剪枝 【免费下载链接】amct AMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。 项目地址: https://gitcode.com/cann/amct 导读 本文基于 CANN AMCT 开源仓库中 …

2026/9/18 6:07:14 阅读更多 →
地下综合管廊结构优化设计方法与工程实践

地下综合管廊结构优化设计方法与工程实践

1. 项目概述1.1 研究背景与工程痛点地下综合管廊作为现代城市"生命线"工程的核心载体,其结构设计直接关系到城市基础设施的安全运行和经济效益。传统设计方法主要存在三大痛点:经验依赖性强:工程师往往基于既往项目经验确定结构尺寸…

2026/9/18 6:07:14 阅读更多 →
管桁架制作与安装一体化工艺设计:从相贯线切割到焊接防偏

管桁架制作与安装一体化工艺设计:从相贯线切割到焊接防偏

简介:面向大型体育场馆、公共建筑等空间结构场景,一份管桁架制作与安装全流程施工工艺设计文档,适合钢结构施工、设计及工程管理技术人员使用。内容系统覆盖了材料选择、施工准备、焊接工艺、安装控制与质量验收等环节:管材、板材…

2026/9/18 6:06:14 阅读更多 →

日新闻

Matlab手写逻辑回归:从数学原理到多变量概率预测模型实现

Matlab手写逻辑回归:从数学原理到多变量概率预测模型实现

很多朋友第一次看到"逻辑回归"这四个字,第一反应就是——这玩意儿是个回归模型吧?我当年也是在Matlab里跑完一段代码,看着输出的0.73、0.86这种概率值,才回过神来:这家伙其实是披着回归外衣的分类神器&#…

2026/9/18 0:00:28 阅读更多 →
高值医用耗材研报PDF:用Python完成字段抽取、清洗与趋势预测

高值医用耗材研报PDF:用Python完成字段抽取、清洗与趋势预测

简介:这份报告是2023-2028年高值医用耗材行业调研及发展前景趋势预测报告,面向医疗器械企业管理者、投资机构、行业研究人员及关注政策变化的从业者,用于把握行业监管动向、市场格局与未来趋势。报告以PDF格式呈现,共1个文件、整体…

2026/9/18 0:00:28 阅读更多 →
三维高斯场赋能世界模型:几何语义蒸馏与机器人决策实战

三维高斯场赋能世界模型:几何语义蒸馏与机器人决策实战

先把我自己的背景交代一下:我之前在搞具身智能和机器人导航相关的项目,很长一段时间里都被“环境表示”这件事卡着。传统做法是用点云或者网格做几何建模,语义信息另外再跑分割模型,两套东西各管各的,时间一长就会发现…

2026/9/18 0:00:28 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/16 19:03:19 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/17 7:57:36 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/17 10:19:14 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →