题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=1077

描述

Yougth和Hrdv这对黄金博弈搭档又要玩游戏了,有n个石子,每次最多可以取a个,最少可以取b个,当剩下少于b的话就要一次性取完,Yougth先取,谁先面对石子为0的局面则赢,他们都非常聪明这是大家都知道的,现在问你谁能赢?

输入
多组数据,每组三个数n,a,b。
(0<=n<=10^120,其他均int范围内)
输出
输出赢了的人的名字。
样例输入
7 4 2
6 4 2
样例输出
Hrdv
Yougth

分析:

博弈有如下原则:

  1. 如果一个状态可以有一种方式转化为必败态(交给对手一种必败局面),那么该状态为:必胜态

  2. 如果一个状态的所有转移状态皆为必胜态(即无论如何对手拿到的都是必胜的局面),那么改状态为:必败态

根据上面的准则进行递推,可得:

n 胜负状态(必胜态:1, 必败态:0)
0 1
[1, b] 0
[b+1, a+b] 1
[a+b+1, a+2b] 0
[a+2b+1, 2a+2b] 1
... ...

我们会发现:[k(a+b)+1, k(a+b)+b] 均为必败态, 即n%(a+b)落在[1, b]区间的都为必败态

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>using namespace std;char n[130];
typedef long long LL; LL f(char* s, int len, LL mod)
{LL ret = 0;for(int i=0; i<len; i++) {ret = (ret*10LL + s[i]-'0')%mod;}    return ret;
}int main ()
{int len;LL a, b, ans; while(scanf("%s%lld%lld", n, &a, &b) != EOF) {len = strlen(n);ans    = f(n, len, a+b);if(ans >=1 && ans <= b)    printf("Hrdv\n");else    printf("Yougth\n");}return 0;
}

转载于:https://www.cnblogs.com/AcIsFun/p/5344159.html

NYOJ 1077 【博弈+大整数取模】相关推荐

  1. poj2305-Basic remains(进制转换 + 大整数取模)

    进制转换 + 大整数取模 一,题意: 在b进制下,求p%m,再装换成b进制输出. 其中p为b进制大数1000位以内,m为b进制数9位以内 二,思路: 1,以字符串的形式输入p,m; 2,转换:字符串- ...

  2. 模运算——大整数取模、幂取模等

    一.加法.减法.乘法取模 int add_mod(int a, int b, int p) {a %= p; b %= p;return (a + b) % p; }int sub_mod(int a ...

  3. 【BZOJ】3751: [NOIP2014]解方程【秦九韶公式】【大整数取模技巧】

    3751: [NOIP2014]解方程 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 4856  Solved: 983 [Submit][Stat ...

  4. nyoj-205--求余数--(大整数取模)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=205 #include<stdio.h> #include<string ...

  5. 快速幂算法和大整数求模

    ** 1.快速幂的算法** (1)当我们求一个数的n次方的的结果时,若直接选择for循环,来累乘的话,效率很低,时间复杂度位O(n),而当我们选择快速幂来计 算时,时间复杂度能达到O(logn),快了 ...

  6. java 大整数取余_java 整数取余

    java整数取余是建立在java整数除法的基础上的,java整数除法可以参考我的上一篇文章java 整数除法. The remainder operation for operands that ar ...

  7. FZU - 2020 计算大组合数取模

    题意: 给出m,n. 计算C(n,m)%p,C(n,m)很大,p是素数  卢卡斯.不过不可以预处理,mod太大了 #include <iostream>//Lucas模板 #include ...

  8. [2016湘潭邀请赛 A. 2016] 大数取模+循环节

    [2016湘潭邀请赛 A. 2016] 大数取模+循环节 1. 题目链接 XTU OnlineJudge : [2016湘潭邀请赛 A. 2016] 2. 题意描述 [图片看不清可以放大.] 给定一个 ...

  9. 【密码学】RSA的大整数雏形

    2019.11.23: 这个代码一开始采用的是如<算法笔记>上等PAT中的类似题目将十进制数字转换为数组大整数(也是十进制形式). 但是这种想法在后来实现加密的时候快速积出现了严重的弊端, ...

最新文章

  1. 获取执行SQL语句的返回结果
  2. java面试总结-(hibernate ibatis struts2 spring)
  3. CDH Hadoop 基于CM方式半在线安装步骤详解
  4. 剑指offer 顺时针打印矩阵
  5. JavaFX官方教程(十)之转换类型和示例
  6. c语言中数组名可以与其他变量名相同,C语言初学者入门讲座 第九讲 数组(1)...
  7. VS2017安装或卸载错误1303
  8. JPA基本注解的使用
  9. android 截图 tftp,TFTP全自动智能路由刷固件软件
  10. matlab实现BCC异或,BCC校验(异或校验)计算
  11. 安装R软件(R、studio)的安装包下载官网和教程
  12. ghost系统卡正在启动服务器,GHOST完后安装win7系统卡在正在启动windows界面...-华硕笔记本装win7,华硕win10改win7步骤...
  13. 镜头相关的基本参数总结
  14. redis的安装,配置
  15. 科技创新就要高浓度、高密度
  16. python猜字游戏
  17. 三大语言关于负数除整数余数和商的总结
  18. 私有云服务器同步盘的定义及优势详解!
  19. js的onfocus与onblur的用法
  20. 攻防世界mfw--详细笔记

热门文章

  1. python安装pip之后 pip命令报错解决方法
  2. django进阶03静态文件和模板
  3. jq使用教程09_ 教程集合帖-伙伴们贡献,不断更新(4.17)
  4. 一张报表节约几十万能耗,新华扬解密精益生产的精髓
  5. flex自定义更新UI
  6. 学习精华——成长篇(三)
  7. python 对象(一分钟读懂)03
  8. html 放上去动画停止,使用jQuery的animate()+CSS样式实现动画效果及stop()停止动画
  9. case when then 统计去重数据_数据分析--SQL求职面试题
  10. linux下载TCGA数据,好用的新版TCGA数据下载方法