博弈类问题

news2024/11/18 1:30:52

 巴什博弈(Bash Game)

String bashGame2(int n, int m) {
		return n % (m + 1) != 0 ? "先手" : "后手";
	}

#include<iostream>
#include<string>
using namespace std;

string compute(int n) {
	return n % 6 != 0 ? "October wins!" : "Roy wins!";
}

int main() {
	int t;
	cin >> t;
	for (int i = 0; i < t; i++) {
		int n;
		cin >> n;
		cout << compute(n) << '\n';
	}


	return 0;
}

Nim博弈

异或和等于0减去一个数一定可以变成不等于0

证明: 异或和不等于0减去一个数一定可以变成等于0

#include<iostream>
#include<string>
using namespace std;

int main() {
	int t;
	cin >> t;
	for (int i = 0; i < t; i++) {
		int n;
		cin >> n;
		int eor = 0;
		for (int j = 0; j < n; j++) {
			int num;
			cin >> num;
			eor ^= num;
		}
		if (eor != 0) {
			cout << "Yes" << '\n';
		}
		else {
			cout << "No" << '\n';
		}
	}
	return 0;
}

反常游戏

#include<iostream>
#include<string>
using namespace std;

int main() {
	int t;
	cin >> t;
	for (int i = 0; i < t; i++) {
		int n, sum = 0, eor = 0;
		cin >> n;
		for (int j = 0; j < n; j++) {
			int num;
			cin >> num;
			sum += (num == 1) ? 1 : 0;
			eor ^= num;
		}
		if (sum == n) {
			cout << ((n & 1) ? "Brother" : "John")<<'\n';
		}
		else {
			cout << ((eor != 0) ? "John" : "Brother") << '\n';
		}
	}
	return 0;
}

斐波那契博弈

如果石头堆成斐波那契数列

如果不成

齐肯多夫定理(Zeckendorf's theorem)是一个有关斐波那契数列的数学定理。

定理陈述:每一个正整数都可以唯一地表示为若干个不连续的斐波那契数之和。

#include<iostream>

typedef long long LL;
const LL N = 1e15;
constexpr int M = 101;
LL f[M];
int size;
void build() {
	f[0] = 1;
	f[1] = 2;
	size = 1;
	while (f[size] <= N) {
		f[size + 1] = f[size] + f[size - 1];
		size++;
	}
}

LL bs(LL n) {
	int l = 0;
	int r = size;
	int m;
	LL ans = -1;
	while (l <= r) {
		m = (l + r) / 2;
		if (f[m] <= n) {
			ans = f[m];
			l = m + 1;
		}
		else {
			r = m - 1;
		}
	}
	return ans;
}

int main() {
	using namespace std;
	build();
	LL n;
	cin >> n;
	LL ans = -1, find;
	while (n != 1 && n != 2) {
		find = bs(n);
		if (n == find) {
			ans = find;
			break;
		}
		else {
			n -= find;
		}
	}
	if (ans != -1)
		cout << ans << '\n';
	else
		cout << n << '\n';

	return 0;
}

  威佐夫博弈

#include<iostream>
#include<string>
#include<cmath>
using namespace std;
typedef long long LL;
LL N = 1e15 + 10;

int main() {
	int a, b;
	cin >> a >> b;
	double split = (sqrt(5.0) + 1.0) / 2.0;
	int min_val = min(a, b);
	int max_val = max(a,b);
	if (min_val != (int)(split * (max_val - min_val)))
		cout << 1 << '\n';
	else
		cout << 0 << '\n';
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1377209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iOS开发进阶(六):Xcode14 使用信号量造成线程优先级反转问题修复

文章目录 一、前言二、关于线程优先级反转三、优先级反转会造成什么后果四、怎么避免线程优先级反转五、使用信号量可能会造成线程优先级反转&#xff0c;且无法避免六、延伸阅读&#xff1a;iOS | Xcode中快速打开终端6.1 .sh绑定6.2 执行 pod install 脚本 七、延伸阅读&…

adrv9009使用记录

这里写自定义目录标题 1.首先下载cygwin&#xff0c;CSDN可以直接搜索&#xff0c;按照对应的安装就可以&#xff0c;最后记得加一个make安装包&#xff0c;不然在make时候会导致指令不存在 2.下载完成之后&#xff0c;去adi-github官网找到对应版本的adrv9009工程 https://git…

为什么要进行漏洞扫描工作

随着互联网的普及和信息技术的飞速发展&#xff0c;网络安全问题愈发引人关注。其中&#xff0c;漏洞扫描作为保障网络安全的重要手段&#xff0c;受到了广泛的关注和应用。本文将详细介绍漏洞扫描的概念、效果、使用场景等&#xff0c;以期为读者提供有关漏洞扫描的全面了解。…

PPT自动化处理

python-pptx模块 可以创建、修改PPT(.pptx)文件非Python标准模块&#xff0c;需要单独安装 在线安装方式 pip install python-pptx 读取slide幻灯片 .slides 获取shape形状 slide.shapes 判断一个shape中是否存在文字 shape.has_text_frame 获取文字框 shape.text_f…

查看磁盘里的大文件

查看磁盘里的大文件 在PowerShell中 命令1&#xff1a; gci -r| sort -descending -property length | select -first 10 name, length 命令2&#xff1a; Get-ChildItem -Path C:\ -Recurse | Where-Object { $_.Length -gt 1GB } | Sort-Object -Property Length -Descendin…

微服务自动化docker-compose

一、docker-compose介绍 Docker Compose是一个用来定义和运行多个复杂应用的Docker编排工具。例如&#xff0c;一个使用Docker容器的微服务项目&#xff0c;通常由多个容器应用组成。那么部署时如何快速启动各个微服务呢&#xff0c;一个个手动启动&#xff1f;假如有上百个微服…

Docker进阶数据卷目录挂载及在线部署

前言 为了很好的实现数据保存和数据共享&#xff0c; Docker 提出了 Volume 这个概念&#xff0c;简单的说就是绕过默认的联合 文件系统&#xff0c;而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷 一. 数据卷介绍 Docker 中的数据卷&#xff08;Volume&#x…

这是一款户外可充电多功能LED地摊灯 手电筒方案

1,信息来源&#xff1a;深圳市世微半导体有限公司 Augus 2,产品的特性有&#xff1a; 全集成单芯片控制 5 照明循环模式可选 0.5A/1A 固定充电电流可选 内置 MOS 1.8A 驱动电流 可外置 MOS 驱动更大电流 充电指示/低电提示/短路提示 3A 手电筒过流保护? 预设 4.22V 电…

【一文搞懂JVM的内存屏障】

要命的问题&#xff1a; 什么是线程的安全性&#xff1f;怎么保证&#xff1f;jvm什么是的内存屏障&#xff1f;他有什么作用&#xff1f; **线程的安全性是指&#xff1a;**指在多线程环境下&#xff0c;多个线程同时访问同一资源时不会产生意外结果或导致数据出错的状态。其…

贝叶斯优化的基本流程

贝叶斯优化的基本流程 假设已知一个函数&#x1d453;(&#x1d465;)的表达式以及其自变量&#x1d465;的定义域&#xff0c;现在&#xff0c;我们希望求解出&#x1d465;的取值范围上&#x1d453;(&#x1d465;)的最小值&#xff0c;你打算如何求解这个最小值呢&#xf…

什么是云服务器CVM?

腾讯云服务器CVM提供安全可靠的弹性计算服务&#xff0c;腾讯云明星级云服务器&#xff0c;弹性计算实时扩展或缩减计算资源&#xff0c;支持包年包月、按量计费和竞价实例计费模式&#xff0c;CVM提供多种CPU、内存、硬盘和带宽可以灵活调整的实例规格&#xff0c;提供9个9的数…

Linux NLTK 安装下载nltk_data

一、前提条件/环境 已经成功安装anaconda环境和nltk。anaconda环境和nltk可参考下面链接进行配置&#xff0c;nltk_data参考本文进行。 Linux安装Anaconda和配置nltk环境_cetons7安装nltk-CSDN博客 二、安装nltk_data 推荐离线安装&#xff0c;亲测成功&#xff01; 1、nltk_…

OpenCV-Python(35):BRIEF算法

算法介绍 BRIEF&#xff08;Binary Robust Independent Elementary Features&#xff09;是一种用于计算机视觉中特征点描述子的算法。它是一种二进制描述子&#xff0c;通过比较图像上不同位置的像素值来生成特征点的描述子。 BRIEF算法的基本思想是选取一组固定的像素对&…

宏景EHR view接口sql注入漏洞

产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合&#xff0c;满足动态化、协同化、流程化、战略化需求的软件. 漏洞概述 宏景eHR view接口处存在SQL注入漏洞&#xff0c;未经过身份认证的远程攻击者可利用此漏洞执行任意SQL指令&#xff0c;从而窃取…

为什么推荐大家使用动态住宅ip?怎么选择?

编辑代理ip的类型有很多&#xff0c;本文来介绍什么是动态住宅ip&#xff0c;为什么很多博主都推荐使用动态住宅ip&#xff0c;他到底有什么好处呢&#xff0c;接下来我们来学习一下。 一、什么是动态住宅ip 网络上的代理供应商很多&#xff0c;通常我们接触的比较多的几种类…

数据结构之二叉搜索树(Binary Search Tree)

数据结构可视化演示链接&#xff0c;也就是图片演示的网址 系列文章目录 数据结构之AVL Tree 数据结构之B树和B树 数据结构之Radix和Trie 文章目录 系列文章目录示例图定义二叉搜索树满足的条件应用场景 示例图 二叉 线形(顺序插入就变成了线性树&#xff0c;例如插入顺序为&…

构建基于RHEL7(CentOS7)的OpenSSH9.5p1的RPM包和升级回退方案

本文适用&#xff1a;RHEL7系列&#xff0c;或同类系统(CentOS7等) 文档形成时期&#xff1a;2023年 因软件世界之复杂和个人能力之限&#xff0c;难免疏漏和错误&#xff0c;欢迎指正。 文章目录 环境准备安装依赖openssh-9.5p1-el7.spec内容构建RPM包下载安装前注意事项开启t…

AI系统ChatGPT网站系统源码AI绘画详细搭建部署教程,支持GPT语音对话+DALL-E3文生图+GPT-4多模态模型识图理解

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

Milvus Cloud与携程的向量探索大公开

【User Tech】2024 我们来啦&#xff01; 今年&#xff0c;【User Tech】将更加专注于为社区用户提供技术功能解读、热点答疑&#xff0c;聚焦更丰富、更多样化的行业或使用场景的用户案例。我们期待通过分享更多关于 Milvus Cloud 的实战经验&#xff0c;为大家在 AI、大模型、…