NYOJ 1077 【博弈+大整数取模】
题目: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 【博弈+大整数取模】相关推荐
- poj2305-Basic remains(进制转换 + 大整数取模)
进制转换 + 大整数取模 一,题意: 在b进制下,求p%m,再装换成b进制输出. 其中p为b进制大数1000位以内,m为b进制数9位以内 二,思路: 1,以字符串的形式输入p,m; 2,转换:字符串- ...
- 模运算——大整数取模、幂取模等
一.加法.减法.乘法取模 int add_mod(int a, int b, int p) {a %= p; b %= p;return (a + b) % p; }int sub_mod(int a ...
- 【BZOJ】3751: [NOIP2014]解方程【秦九韶公式】【大整数取模技巧】
3751: [NOIP2014]解方程 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 4856 Solved: 983 [Submit][Stat ...
- nyoj-205--求余数--(大整数取模)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=205 #include<stdio.h> #include<string ...
- 快速幂算法和大整数求模
** 1.快速幂的算法** (1)当我们求一个数的n次方的的结果时,若直接选择for循环,来累乘的话,效率很低,时间复杂度位O(n),而当我们选择快速幂来计 算时,时间复杂度能达到O(logn),快了 ...
- java 大整数取余_java 整数取余
java整数取余是建立在java整数除法的基础上的,java整数除法可以参考我的上一篇文章java 整数除法. The remainder operation for operands that ar ...
- FZU - 2020 计算大组合数取模
题意: 给出m,n. 计算C(n,m)%p,C(n,m)很大,p是素数 卢卡斯.不过不可以预处理,mod太大了 #include <iostream>//Lucas模板 #include ...
- [2016湘潭邀请赛 A. 2016] 大数取模+循环节
[2016湘潭邀请赛 A. 2016] 大数取模+循环节 1. 题目链接 XTU OnlineJudge : [2016湘潭邀请赛 A. 2016] 2. 题意描述 [图片看不清可以放大.] 给定一个 ...
- 【密码学】RSA的大整数雏形
2019.11.23: 这个代码一开始采用的是如<算法笔记>上等PAT中的类似题目将十进制数字转换为数组大整数(也是十进制形式). 但是这种想法在后来实现加密的时候快速积出现了严重的弊端, ...
最新文章
- 获取执行SQL语句的返回结果
- java面试总结-(hibernate ibatis struts2 spring)
- CDH Hadoop 基于CM方式半在线安装步骤详解
- 剑指offer 顺时针打印矩阵
- JavaFX官方教程(十)之转换类型和示例
- c语言中数组名可以与其他变量名相同,C语言初学者入门讲座 第九讲 数组(1)...
- VS2017安装或卸载错误1303
- JPA基本注解的使用
- android 截图 tftp,TFTP全自动智能路由刷固件软件
- matlab实现BCC异或,BCC校验(异或校验)计算
- 安装R软件(R、studio)的安装包下载官网和教程
- ghost系统卡正在启动服务器,GHOST完后安装win7系统卡在正在启动windows界面...-华硕笔记本装win7,华硕win10改win7步骤...
- 镜头相关的基本参数总结
- redis的安装,配置
- 科技创新就要高浓度、高密度
- python猜字游戏
- 三大语言关于负数除整数余数和商的总结
- 私有云服务器同步盘的定义及优势详解!
- js的onfocus与onblur的用法
- 攻防世界mfw--详细笔记
热门文章
- python安装pip之后 pip命令报错解决方法
- django进阶03静态文件和模板
- jq使用教程09_ 教程集合帖-伙伴们贡献,不断更新(4.17)
- 一张报表节约几十万能耗,新华扬解密精益生产的精髓
- flex自定义更新UI
- 学习精华——成长篇(三)
- python 对象(一分钟读懂)03
- html 放上去动画停止,使用jQuery的animate()+CSS样式实现动画效果及stop()停止动画
- case when then 统计去重数据_数据分析--SQL求职面试题
- linux下载TCGA数据,好用的新版TCGA数据下载方法