(计蒜客) 取石子游戏 (gcd算法灵活运用)

2023-05-16

蒜头君和花椰妹在玩一个游戏,他们在地上将 n 颗石子排成一排,编号为 1 到 n。开始时,蒜头君随机取出了 2 颗石子扔掉,假设蒜头君取出的 2 颗石子的编号为 a, b。游戏规则如下,蒜头君和花椰妹 2 人轮流取石子,每次取石子,假设某人取出的石子编号为 i,那么必须要找到一对 j, k 满足 i=j−k 或者 i=j+k ,并且编号为 j,k 的石子已经被取出了,如果谁先不能取石子了,则视为输了。蒜头君比较绅士,让花椰妹先手。 
输入格式 
第一行输入一个整数 t(1≤t≤500),表示蒜头君和花椰妹进行了 t 局游戏。 
对于每局游戏,输入 3 个整数 n(2≤n≤20000),a,b(1≤a,b≤n),保证 a,b 不相等。 
输出格式 
如果蒜头君赢了游戏,输出一行suantou,如果花椰妹赢了,输入一行huaye。 
样例输入 

8 6 8 
9 6 8 
10 6 8 
11 6 8 
12 6 8 
样例输出 
suantou 
suantou 
huaye 
huaye 
suantou
解题思路:

根据i=j-k,或 i=j+k,则一定会取到 编号为j 和 k 的最大公约数的石子,并且所拿的所有石头的编号都是最大公约数的倍数

假设玩家每次取的石头编号为a和b最大公因数的倍数,那么当一个玩家没法再取石头时(所有符合条件的石头被取完了,那么该玩家就输了)

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;
int N;
bool isappr[20010];
int sgcd(int a, int b){
	if (b == 0) return a;
	else return sgcd(b, a%b);
}
int main() {
	scanf("%d", &N);
	int n,x,y;
	while (N--) {
		memset(isappr, true, sizeof(isappr));  
		scanf("%d %d %d",&n, &x, &y);  //返回x,y
		int gcNum = sgcd(x, y);  //先求得公因数
		isappr[x] = false, isappr[y] = false;
		int stpot = gcNum;
		bool huaStart = false;   //花椰菜为false,蒜头为true
		while (stpot <= n){
			if (isappr[stpot] == true) {
				huaStart = !huaStart;
			}
			stpot += gcNum;
		}
		if (huaStart) {
			printf("huaye\n");
		}
		else {
			printf("suantou\n");
		}
	}
	system("PAUSE");
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(计蒜客) 取石子游戏 (gcd算法灵活运用) 的相关文章

随机推荐

  • YOLOV3 网络结构学习笔记

    注 xff1a 本文非原创 xff0c 文章内容都是引用以下文章中 xff0c 本文只是记录学习笔记 yolo系列之yolo v3 深度解析 木盏的博客 CSDN博客 yolo3 YOLO v3算法详解 Atlas 的博客 CSDN博客 y
  • 基于人脸特征点实现疲劳检测

    为了有效监测驾驶员是否疲劳驾驶 避免交通事故的发生 提出了一种利用人脸特征点进行实时疲劳驾驶检测的新方法 对驾驶员驾驶时的面部图像进行实时监控 首先检测人脸 并利用ERT算法定位人脸特征点 然后根据人脸眼睛区域的特征点坐标信息计算眼睛纵横比
  • 基于 HPSocket , 实现 socket 通讯

    HPSocket HP Socket 是一套通用的高性能 TCP UDP HTTP 通信框架 xff0c 包含服务端组件 客户端组件和 Agent 组件 xff0c 广泛适用于各种不同应用场景的 TCP UDP HTTP 通信系统 xff0
  • windows 基于 MediaPipe 实现 PoseTracking

    MediaPipe是用于构建跨平台多模态应用ML管道的框架 xff0c 其包括快速ML推理 xff0c 经典计算机视觉和媒体内容处理 xff08 如视频解码 xff09 在2019年6月举行的CVPR大会 xff0c MeidaPipe正式
  • windows 基于 MediaPipe 实现 HandTracking

    OverView 感知手的形状和运动的能力可能是改善跨各种技术领域和平台的用户体验的重要组成部分 例如 xff0c 它可以构成手语理解和手势控制的基础 xff0c 还可以在增强现实中将数字内容和信息叠加在物理世界之上 虽然对人们来说很自然
  • DeepStream 部署 RTSP + scaled-yolov4 (tensorrtx)

    DeepStream应用程序将深度神经网络和其他复杂的处理任务引入到流处理管道中 xff0c 以实现对视频和其他传感器数据的近实时分析 从这些传感器中提取有意义的见解为提高运营效率和安全性创造了机会 例如 xff0c 摄像头是当前使用最多的
  • DeepStream 多路拉取RTSP视频流

    上一篇介绍DeepStream 如何集成Yolov4模型 xff0c 那么本篇介绍下如何实现读取多路RTSP 代码 主要代码参考 https github com belarbi2733 deepstream rtspsrc yolo详细代
  • 编码格式(关于utf-8,gb2312,gbk,big5等)

    计算机数据是以二进制的方式来存储 xff0c 符号代表文字 那么二进制数据表示的模式就是编码 xff0c 跟电报的加密解密是一个道理 xff0c 那么如何将这些数据转化成有效字符 xff0c 这就涉及到了编码格式 xff0c 一般常见的编码
  • Ubuntu配置桥接网络

    第一步 xff1a 点击虚拟机 xff0c 点击设置 第二步 xff1a 点击网络适配器 xff0c 选中桥接模式并确定 第三步 xff1a 点击编辑 xff0c 打开虚拟网络编辑器 xff0c 选中桥接模式 点击 网络属性 找到描述 xf
  • 基于 NCNN, 实现 yolov8

    记录下 基于 ncnn 实现 yolov8 的全部过程 修改 ultralytics nn modules py class Detect forward 和 class C2f forward span class token keywo
  • HRNet 训练自定义数据集

    基于 HRNet 训练人脸特征点数据集 INSTALL conda create n openmmlab span class token assign left variable python span span class token
  • Chatgpt 指令收集

    在使用 ChatGPT 时 xff0c 当你给的指令越精确 xff0c 它的回答会越到位 xff0c 举例来说 xff0c 假如你要请它帮忙写文案 xff0c 如果没给予指定情境与对象 xff0c 它会不知道该如何回答的更加准确 一 写报告
  • openEuler 安装图形桌面环境Gnome或DDE或UKUI

    由于openEuler系统主要针对服务器 xff0c 目前默认安装之后没有图形桌面环境 xff0c 需要的用户可以自己手动安装配置 这里推荐安装深度桌面DDE或优麒麟UKUI环境 安装gnome桌面 sudo dnf makecache s
  • Ubuntu更换国内镜像源

    由于Ubuntu官方镜像速度有限 xff0c 可以使用国内镜像加速更新和下载 xff0c 节约时间 常用的国内镜像有很多 xff0c 本人常用的有如下几个 xff0c 仅供参考 163镜像 mirrors 163 com 清华镜像 mirr
  • ubuntu-2204 gerrit ssh 报错Permission denied (publickey).分析及解决

    ubuntu 2204 gerrit ssh 报错Permission denied publickey 分析及解决 使用repo init sync下载代码时遇到报错 Permission denied publickey 分析排查步骤
  • 消息序列化工具-protobuf介绍及安装使用技巧

    简介 protobuf是google团队开发的用于高效存储和读取结构化数据的工具 xml json也可以用来存储此类结构化数据 xff0c 但是使用protobuf表示的数据能更加高效 xff0c 并且将数据压缩得更小 xff0c 大约是j
  • 消息序列化工具-为现代C++设计的jsoncpp介绍与使用技巧

    概述 JSON 的全称为 xff1a JavaScript Object Notation xff0c 顾名思义 xff0c JSON 是用于标记 Javascript 对象的 xff0c JSON 官方的解释为 xff1a JSON 是一
  • cppcheck代码检查工具安装与使用技巧

    cppcheck代码检查工具安装与使用技巧 Cppcheck 是一种 C C 43 43 代码缺陷静态检查工具 不同于 C C 43 43 编译器及很多其它分析工具 xff0c 它不检查代码中的语法错误 Cppcheck 可以检查非标准代码
  • sed流编辑器中使用变量替换以及执行外部命令

    在使用sed对日志或者其它文本进行parse的过程当中 xff0c 有时候我们需要引用外部变量的值 xff0c 或者获取一个shell命令执行的结果 xff0c 以便达到更加可观的输出结果 这里介绍如何做到 sed 流编辑 1 sed命令及
  • (计蒜客) 取石子游戏 (gcd算法灵活运用)

    蒜头君和花椰妹在玩一个游戏 xff0c 他们在地上将 n 颗石子排成一排 xff0c 编号为 1 到 n 开始时 xff0c 蒜头君随机取出了 2 颗石子扔掉 xff0c 假设蒜头君取出的 2 颗石子的编号为 a b 游戏规则如下 xff0