hdu 1527 威佐夫博弈

hdu-online judge 若干博弈问题 有题,有解题思路,有解题代码 hdu2516、poj1067和hdu1527、hdu2177、hdu2176等等 立即下载

威佐夫博弈的入门题

两堆石子分别有a、b个,每次能从一堆中取走>=1个石子,或者从两队中取走同样多个石子

奇异局势:面对奇异局势时,先手的人必输。

关键在于奇异和非奇异相互转换的证明,

证明过程->传送门

总之最后的证:任意非奇异局势均可通过一步转换到奇异局势。

这样一来,只要判断初始状态的局势就可以了。

先将a置为较小的一个数,令k=[(√5-1)*a/2].

若a=ak并且b=ak+k或者a=ak+1而且b=ak+1+k,则为奇异局势,先手必输。

否则先手必胜。

#include<iostream>
#include<cstdio>
#include<vector>
#include<set>
#include<map>
#include<string.h>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#define LL long long
#define mod 1000000007
#define inf 0x3f3f3f3f
#define sqr(a) (a)*(a)
#define lan(a,b) memset(a,b,sizeof(a))

using namespace std;


int main()
{
    LL a,b;
    while(~scanf("%lld%lld",&a,&b))
    {
        if(a>b)
        {
            LL t=a;
            a=b;
            b=t;
        }
        LL k=(sqrt(5.0)-1.0)*(double)a/2;
        LL l=(1+sqrt(5.0))/2*k;
        LL p=(1+sqrt(5.0))/2*(k+1);
        if(a==l&&b==a+k)
            printf("0\n");
        else if(a==p&&b==a+k+1)
            printf("0\n");
        else
            printf("1\n");
    }
    return 0;
}

Carla-编译CarlaUE4提示HoloLens.Automation项目缺少Windows程序集? 编译CarlaUE4提示HoloLens.Automation项目缺少Windows程序集?不妨看看这个! 阅读详情

相关推荐

simulink求解器选择的小tip

给出了simulink选择求解器的一种tip,与积分初值有关。

高能阿博特的博客 2054

HDU 1527 取石子游戏 +HDU 2177 取(2堆)石子游戏(威佐夫博弈)

突然发现博弈好有意思啊,很神奇的感觉给大家推荐大佬的博客,讲的很详细:威佐夫博弈传送门自己实现了一下这道题,很简单HDU1527重点是这个1.618即(sqrt(5)+1)/2#include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;cstdio&gt; #include&lt;algorithm&gt; #include&lt;ve...

STOP 309

Visual studio 2013 配置 Halcon 13 (非抄袭)

Visual studio 2013 配置 Halcon 13.0.2.2 (其他版本适用) 针对网上抄袭的配置方法均不可用,写了一篇亲试可行的配制方法。如下: 1.下载Halcon安装后(C:\Program Files\MVTec\HALCON-13.0) 添加环境变量,(按下win按键,键入“环境变量”,出现 “编辑系统环境变量”后按下enter即可打开,下方找到“环境变量”按钮)的系...

huyanjackson的专栏 1042

HDU 1527 取石子游戏 (博弈)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1527 题       意:有两堆石子,不妨先认为一堆有 10,另一堆有 15 个,双方轮流取走一些石子,合法的取法有如下两种:                            1、在一堆石子中取走任意多颗;                            2、在两堆石子中取走相同多的

Seraphimon的博客 440

SAP FICO CK40N批量发布标准价:常见报错排查与实战解决指南

本文详细解析了SAP FICO模块中CK40N批量发布标准价的常见报错及解决方案。从物料选择、成本核算到最终发布的全流程,提供了针对'已有标准成本估算记号'等典型报错的实战处理技巧,并分享了预防性维护与批量处理的高效方法,帮助财务人员提升工作效率。

weixin_29234509的博客 304

IEEE 754浮点数与十六进制转换:从原理到实战避坑指南

在计算机系统中,数据的二进制表示与内存布局是底层开发的核心基础。IEEE 754标准定义了浮点数在内存中的精确格式,包括符号位、指数位和尾数位的分工,以及零、无穷大和NaN等特殊值的编码。理解这一原理对于处理原始字节流至关重要,尤其是在涉及跨平台或跨设备通信时。其技术价值在于,它能帮助开发者从根本上解决数据解析错误、通信协议不一致以及程序调试中的“灵异”问题。在嵌入式开发、网络通信(如Modbus协议)和固件解析等应用场景中,浮点数与十六进制的转换是高频操作。然而,字节序(大端/小端)是转换过程中最常见的“

weixin_33835103的博客 430

hdu 1527 取石子游戏(组合游戏)

题目连接:hdu 1527 取石子游戏 题目大意:略。 解题思路:威佐夫博弈. #include #include #include #include using namespace std; int main () { int a, b; while (scanf("%d%d", &a, &b) == 2) { if (a > b)

不慌不忙、不急不躁 806

HDU - 1527 - 取石子游戏(威佐夫博弈)

有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。 Input 输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的...

Steve·Curcy 245

【openGauss实战1】openGauss基于CentOS8的部署

基于openGauss数据库在CentOS8上的安装实践。

IT邦德 3050

SpringBoot DDoS防护:限流与验证全面指南

SpringBoot应用DDoS防护摘要 本文介绍了SpringBoot应用防护DDoS攻击的方案。DDoS攻击通过分布式请求耗尽服务器资源,导致服务不可用、成本激增等风险。防护需遵循分层防御、弹性设计等原则。 核心方案包括: 令牌桶限流:使用Guava RateLimiter控制请求速率 滑动窗口算法:通过Redis+Lua实现精确的分布式限流 微服务集成:利用Spring Cloud Gateway统一管理API限流 实施建议: 关键接口默认添加限流保护 监控系统实时警报异常流量 结合WAF等多层防护措

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 2486

HDU 1527 取石子游戏 威佐夫博弈

题目来源:HDU 1527 取石子游戏 题意:中文 思路:威佐夫博弈 必败态为 (a,b ) ai + i = bi     ai = i*(1+sqrt(5.0)+1)/2   这题就求出i然后带人i和i+1判断是否成立 以下转自网上某总结 有公式ak =[k(1+√5)/2],bk= ak + k  (k=0,1,2,…,n 方括号表示取整函数) 其中出现了黄金分割数(1+√5)/2

嗯。 1050

Simulink仿真模块-Signal Generator

Signal Generator:生成各种波形 所在的位置库为:Simulink / Sources 模型为: 说明 Signal Generator模块可以产生四种不同波形: 正弦波 方波 锯齿波 随机 可以使用 hertz 或 rad/sec 为单位表示信号参数。双击模型可以选择需要生成的波形,如图所示: 使用默认参数值,可以获得下列波形之一: 波形 波形输出 正弦波 ...

jk_101的博客 2653

威佐夫博弈 HDU1527

链接  https://vjudge.net/problem/HDU-1527 问题 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。 输入 ...

lt的博客 198

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

威佐夫博弈hdu 1527 && hdu 2177

威佐夫博弈百科:http://baike.baidu.com/link?url=f7j5EUYCTEdcel3TDDnSW6VeXpyp1Uvalx-7uzLv-wmQXSlwzjgWVFHWOM7Lw3H3bl16-bF4JZ-KUzneQSHZRK hdu 1527: #include #include #include #include #include #include #in

xiaoyu1_1的专栏 599

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

HDU1527威佐夫博弈

/*(威佐夫博弈)(http://baike.baidu.com/view/1952620.htm) 这不是我写的啊!1、在一堆石子中取走任意多颗;2、在两堆石子中取走相同多的任意颗;约定取走最后一颗石子的人为赢家,求必胜策略。两堆石头地位是一样的,我们用余下的石子数(a,b)来表示状态,并画在平面直角坐标系上。和前面类似,(0,0)肯定是 P 态,又叫必败态。(0,k),(k,0),(...

dikuimei3153的博客 123

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

HDU1527——取石子游戏(威佐夫博弈)

Problem Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。   Input 输入包含若干行,表

poleanNa的博客 440

HDU1527 取石子游戏 威佐夫博弈

题源:http://acm.hdu.edu.cn/showproblem.php?pid=1527 题意:见最后。 思路:威佐夫博弈,涉及奇异局势等词汇,见百科:https://baike.baidu.com/item/%E5%A8%81%E4%BD%90%E5%A4%AB%E5%8D%9A%E5%BC%88/19858256?fr=aladdin 大体思路其实就是根据威佐夫博弈的公式 ak =...

枚举星星 249

ACM-威佐夫博弈之取石子游戏——hdu1527

ACM 威佐夫博弈 取石子游戏 hdu1527

继续激情,继续奋斗。 4537

hdu1527 威佐夫博弈

#include #include #include #include #include #include using namespace std;     //hdu1527 威佐夫博弈 int main() { int a, b, a1, j;    double k=(sqrt(5.0)-1)/2; while(scanf("%d%d", &a, &b)!=

u012432475的专栏 630

威佐夫博弈[hdu1527]

先看题目 Link 刚学习了SG函数和博弈论的一些知识,我们来分析一波,整篇文章都是自己yy的,所以极有可能伪证。 先倒推 (0,0)为必败态 显然\((0,x)\),\((x,0)\),\((x,x)\)均为必胜态 对于状态\((x,y)\)(不妨设 \(x<y\)) 其为必胜态当且仅当其能转移到必败态\((x_2,y_2)\) 其为必败态当且仅当它没有转移,或仅能转移到必胜态。...

157

HDU1527 取石子游戏 威佐夫博弈

HDU1527 取石子游戏 威佐夫博弈

htrdchh的博客 183

HDU 1527 取石子游戏(威佐夫博弈)

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Problem Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜

2cm的专栏 390

hdu1527(威佐夫博弈,模型学习)

威佐夫博弈:有两堆各若干个物品,两个人轮流从任意一堆中取出至少一个或者同时从两堆中取出同样多的物品,规定每次至少取一个,至多不限,最后取光者胜利。 结论:首先黄金比例:r=1.618 = (sqrt(5.0) + 1) / 2,则给定两组石头堆(n,m),假设n>m,则当(n-m)*r==m时,先手输。否则后手输 #include<cstdio> #include<c...

qq_39861441的博客 331

HDU-1527-取石子游戏【威佐夫博弈】

HDU-1527-取石子游戏Problem Description 游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。

Linoy 2128
上一篇: hdu 2147 巴什博弈+PN图
下一篇: hdu 2177 威佐夫博弈
Dale_zero
博客等级 码龄9年 10粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值