I - Bob vs ATM(博弈论)
传送门:nefu_10-18 - Virtual Judge (vjudge.net)
思路:
nim游戏的变形。
(())相当于在一堆n个石子中取任意个,sg(n)=n;
((()))(())(),相当于可以在3堆石子分别为3,2,1个石子中取任意个sg函数值为:
sg(3)^sg(2)^sg(1);
对于(()()(())),这样的,刨除外面一层,sg函数为sg(1)^sg(1)sg(2)=2;
我们可以把他等效成(())【sg值一致】,整个就可以等效成((()));
将整个序列等效成由(())这样的括号组成,异或sg函数值即可。
具体操作时:
记录“(”的位置和对应“)”位置,然后solve(1,n)递归处理。
当l==r-1,说明是()这种情况,返回1;
当p[l]==r,说明最外层是(),返回1+solve(l+1,r-1);
除上述情况 返回solve(l, p[l]) ^ solve(p[l] + 1, r);
代码:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<math.h>
#include<map>
#include<unordered_map>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int N = 1e5 + 1000;
char s[N];
unordered_map<int, int> p;
stack<int>q;
int solve(int l,int r)
{
/*cout << l <<" " << r << endl;*/
if (r <= l) return 0;
if (l == r - 1 && s[l] == '(' && s[r] == ')') return 1;
if (p[l] == r) return 1 + solve(l + 1, r - 1);
return solve(l, p[l]) ^ solve(p[l] + 1, r);
}
int main() {
int T;
cin >> T;
while (T--)
{
cin >> s + 1;
int len = strlen(s + 1);
for (int i = 1; i <= len; i++)
{
if (s[i] == '(')
q.push(i);
else
{
p[q.top()] = i;
q.pop();
}
}
int ans = solve(1,len);
/*cout << ans << endl;*/
if (ans)
printf("ATM\n");
else
printf("Bob\n");
p.clear();
}
return 0;
}
相关文章:
I - Bob vs ATM(博弈论)
传送门:nefu_10-18 - Virtual Judge (vjudge.net) 思路: nim游戏的变形。 (())相当于在一堆n个石子中取任意个,sg(n)n; ((()))(())(),相当于可以在3堆石子分别为3&am…...
请解释一下 CSS3 的 Flexbox(弹性盒布局模型), 以及适用场景?
解析: CSS3的Flexbox(弹性盒布局模型)是一种强大的布局技术,用于创建灵活和响应式的布局。它解决了传统CSS布局模型在垂直和水平居中、等高列、自适应宽度等方面的一些挑战,使开发人员能够更轻松地构建各种复杂的布局。在下面的详…...
MYSQL 根据唯一索引键更新死锁问题
mysql 死锁问题及死锁权重分析 问题发生过程:1、生产发现死锁一次 语句为sql1:UPDATE table set data ‘123’ where business_no ABC; 该行数据的id1, business_no ABC tablbe 字段 id:主键 business_no为唯一索引字段,其…...
Appium+python+unittest搭建UI自动化框架!
阅读本小节,需要读者具备如下前提条件: 1. 掌握一种编程语言基础,如java、python等。 2. 掌握一种单元测试框架,如java语言的testng框架、python的unittest框架。 3. 掌握目前主流的UI测试框架,移动端APP测试框架Appiu…...
使用kubekey部署k8s集群和kubesphere、在已有k8s集群上部署kubesphere
目录 前言什么是kubekey(简称kk)单节点上安装 kubesphere(all in one 快速熟悉kubesphere)部署 kubernetes和和kubesphere 多节点安装部署 kubernetes和和kubesphere 离线安装k8s v1.22.17和kubesphere v3.3.2联网-在已有k8s集群上…...
React useMemo useCallback useEffect 的区别(保姆级教程)
因个人工作原因,在2023年学起了React TS 这个 “前端大佬” “高阶玩家” 标配的技术栈,一套学习下来个人总结就是:React真特么难用!传染病式的渲染逻辑是真让人难受!维护之前的代码就是深渊!难怪React项目…...
网络安全中的人工智能:优点、缺点、机遇和危险
2022 年秋天,人工智能在商业领域爆发,引起了轰动,不久之后,似乎每个人都发现了 ChatGPT 和 DALL-E 等生成式 AI 系统的新的创新用途。世界各地的企业开始呼吁将其集成到他们的产品中,并寻找使用它来提高组织效率的方法…...
36 机器学习(四):异常值检测|线性回归|逻辑回归|聚类算法|集成学习
文章目录 异常值检测箱线图z-score 保存模型 与 使用模型回归的性能评估线性回归正规方程的线性回归梯度下降的线性回归原理介绍L1 和 L2 正则化的介绍api介绍------LinearRegressionapi介绍------SGDRegressor 岭回归 和 Lasso 回归 逻辑回归基本使用原理介绍正向原理介绍损失…...
maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories
前言 略 说明 新设备上安装了mvn 3.8.5,编译新项目出错: [ERROR] Non-resolvable parent POM for com.admin.project:1.0: Could not transfer artifact com.extend.parent:pom:1.6.9 from/to maven-default-http-blocker (http://0.0.0.0/): Bl…...
盒式交换机堆叠配置
目录 1.配置环形拓扑堆叠 2.设备组建堆叠 3.设备组件堆叠 堆叠 istack,是指将多台支持堆叠特性的交换机设备组合在一起,从逻辑上组合成一台交换设备。如图所示,SwitchA与 SwitchB 通过堆叠线缆连接后组成堆叠 istack,对于上游和…...
openEuler 服务器安装 JumpServer (all-in-one 模式)
openEuler 服务器安装 JumpServer JumpServer 简介什么是 JumpServer ?JumpServer 的各种类型资产JumpServer 产品特色或优势JumpServer 符合 4A 规范 JumpServer 系统架构应用架构组件说明 JumpServer 安装部署环境要求网络端口网络端口列表防火墙常用命令 在线脚本…...
vue3后台管理系统之路由守卫
下载进度条 pnpm install nprogress //路由鉴权:鉴权,项目当中路由能不能被的权限的设置(某一个路由什么条件下可以访问、什么条件下不可以访问) import router from /router import setting from ./setting // eslint-disable-next-line typescript-eslint/ban-ts-comment /…...
微信小程序连接数据库与WXS的使用
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯Ἲ…...
django 项目基本配置
项目工程初始化 安装框架 pip install django使用命令创建项目 django-admin startproject 项目名称效果 根目录创建apps用以放置所有包 切换至apps目录创建子应用 python ../manage.py startapp usermuxi_shop_back/settings.py # Build paths inside the project lik…...
JAVA基础(JAVA SE)学习笔记(六)面向对象编程(基础)
前言 1. 学习视频: 尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)_哔哩哔哩_bilibili 2023最新Java学习路线 - 哔哩哔哩 第二阶段:Java面向对象编程 6.面向对象编程(基础) 7.面向对象编程&…...
吉利高端品牌领克汽车携手体验家,重塑智能创新的汽车服务体验
浙江吉利控股集团(以下简称“吉利集团”)始建于1986年,1997年进入汽车行业,一直专注实业,专注技术创新和人才培养,坚定不移地推动企业转型升级和可持续发展。现资产总值超5100亿元,员工总数超过…...
短视频矩阵系统源码(搭建)
短视频矩阵源码的开发路径分享如下: 1、首先,确定项目需求和功能,包括用户上传、编辑、播放等。 2、其次,搭建开发环境,选择合适的开发工具和框架。 3、然后,进行项目架构设计和数据库设计,确…...
k8s 实战 常见异常事件 event 及解决方案分享
k8s 实战 常见异常事件 event 及解决方案分享 集群相关 Coredns容器或local-dns容器 重启集群中的coredns组件发生重启(重新创建),一般是由于coredns组件压力较大导致oom,请检查业务是否异常,是否存在应用容器无法解析域名的异常。如果是l…...
【Python机器学习】sklearn.datasets回归任务数据集
为什么回归分析在数据科学中如此重要,而sklearn.datasets如何助力这一过程? 回归分析是数据科学中不可或缺的一部分,用于预测或解释数值型目标变量(因变量)和一个或多个预测变量(自变量)之间的关系。sklearn.datasets模块提供了多种用于回归分析的数据集,这些数据集常…...
Springboot写电商系统(2)
Springboot写电商系统(2) 1.新增收货地址1.创建t_addresss数据库表2.创建Address实体类3.数据库操作的持久层1.接口写抽象方法2.xml写方法映射sql3.测试 4.前后数据交互的业务层1.sql操作的异常抛出2.交互方法的接口定义3.接口的方法实现4.测试 5.与前端…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
