bzoj1188: [HNOI2007]分裂游戏

数控系统(CNC)系列:Fanuc 31i-B_(5).基本操作与编程 Fanuc 31i-B 系统使用 G 代码和 M 代码进行编程。G 代码主要用于控制机床的运动,M 代码用于控制辅助功能,如冷却液开关、主轴启动等。G 代码:用于指定机床的运动方式。例如,G00 用于快速定位,G01 用于直线插补,G02 用于顺时针圆弧插补,G03 用于逆时针圆弧插补。M 代码:用于控制机床的辅助功能。例如,M03 用于启动主轴顺时针旋转,M05 用于停止主轴,M08 用于开启冷却液,M09 用于关闭冷却液。 阅读详情

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1188

思路:这题比较特殊,每个豆子是一个独立的游戏,SG的下标是豆子所处的位置。

知道了这一点就很好做了。

首先对于一个位置的两个豆子,一个人走一步,另一个人也可以走这一步,所以就抵消了

从SG函数的角度理解,这两个豆子的SG值相同,最后反正会被异或掉。

所以豆子数等于a[i]%2

对于输出方案,枚举i,j,k,表示第一步由i移向j和k。

怎么判断是否合法?只要判断移动后是否为先手必败,就是移动后的局面SG值为零。

移动后的SG值只要通过原来的SG^SG[i]^SG[j]^SG[k]得到。

这一步也很好理解,i处豆子少了一个,j,k豆子多了一个,都只要异或一下就可以了。

#include<cstdio>
#include<cstring>
#include<algorithm>
const int maxn=27;
using namespace std;
int T,n,a[maxn],sg[maxn],tot,ans;bool bo[20010];

int getsg(int x){
	if (sg[x]!=-1) return sg[x];//printf("xxxxx%d\n",x);
	memset(bo,0,sizeof(bo));
	for (int i=1;i<x;i++)
		for (int j=1;j<=i;j++)
			bo[getsg(i)^getsg(j)]=1;//,printf("%d %d\n",i,j)
	for (int i=0;;i++) if (!bo[i]) return sg[x]=i;
}

int main(){
	memset(sg,-1,sizeof(sg));
	sg[1]=0;for (int i=2;i<26;i++) sg[i]=getsg(i);
	//for (int i=1;i<=20;i++) printf("%d\n",sg[i]);
	scanf("%d",&T);
	while (T--){
		scanf("%d",&n),ans=tot=0;
		for (int i=1;i<=n;i++) scanf("%d",&a[i]);
		for (int i=1;i<=n;i++) if (a[i]&1) ans^=sg[n-i+1];
		for (int i=1;i<=n;i++)
			for (int j=i+1;j<=n;j++)
				for (int k=j;k<=n;k++)
					if (!(ans^sg[n-i+1]^sg[n-j+1]^sg[n-k+1]))
						if (++tot==1) printf("%d %d %d\n",i-1,j-1,k-1);
		if (!tot) puts("-1 -1 -1");
		printf("%d\n",tot);
	}
	return 0;
}



Flatten 层的深度理解与运用 阅读详情

相关推荐

基于Python+OpenCV中文及符号检测

一、项目背景与意义在图像处理、文档识别、自动翻译等场景中,中文及符号的准确检测是一个重要且复杂的任务。传统的字符检测方法往往对英文等拉丁字母系的识别效果较好,但对中文及特殊符号的识别准确率较低。本项目旨在利用Python编程语言结合OpenCV库,开发一个能够高效、准确地检测图像中中文及符号的系统,为相关领域的研究和应用提供技术支撑。二、技术实现图像预处理:利用OpenCV的图像处理功能,对输入的图像进行灰度化、二值化、滤波去噪等预处理操作,以提高中文及符号检测的准确性[1]。

2301_79809972的博客 1119

bzoj2064 分裂 (状压dp神题)

题意: 给n1个物品1,和n2个物品2,求最少的操作次数,使物品2变成物品1(可以拆分物品2,也可以聚拢) 分析: 数据范围小->状压或暴搜,考虑暴搜,不好存状态,因为把两个物品拼接起来物品的数量会改变。于是只能考虑状压。(考场上还有半个小时的时候极其兴奋地去打状压,哇塞我好聪明,哇塞我好强,竟然打出来了耶,最后发现,题看错了。。。看漏了可以拆分物品2来变成物品1) 这是我...

weixin_30902675的博客 235

基于32nm CMOS工艺的传输门D触发器设计及HSPICE仿真分析

根据半导体集成电路、利用Hspice软件以及数字电路等课程的知识,使用集成电路CMOS工艺完成触发器的设计,帮助初学者熟悉和掌握集成电路芯片电路设计及模拟方法和技巧

2302_81301620的博客 2452

[BZOJ1188][HNOI2007]分裂游戏(博弈SG函数)

题目描述传送门题解本来想写一个二维的SG,一维是位置一维是个数,但是发现做不了多少就炸了。 后来发现只有石子个数是奇数是有意义的,因为偶数的都可以模仿操作对吧。 那么这样的话就相当于是一坨1来做,然后每一次可以将一个游戏拆成两个游戏,这不就是典型的Multi-SG吗。 用SG函数记忆化搜索就可以解决了。 最后找方案的话暴力就可以,实际上还可以简化一下,ans^sg(i)^sg(j)^sg(k

zyf2000 1037

Altium Designer操作技巧(4)——如何利用嘉立创EDA来输出3D封装到AD封装库?

本文介绍了利用嘉立创EDA和FreeCAD软件为PCB元件添加3D模型的方法。首先在嘉立创EDA中搜索元件编号并导出3D模型,然后使用FreeCAD删除3D模型中的PCB基板部分,最后将处理后的3D模型导入PCB封装库并更新到PCB设计中。文章详细讲解了每个步骤的操作流程,包括模型导出、基板删除、位置调整等关键环节,并提供了解决常见问题的方法。通过这种方法,电子工程师可以快速获得元器件的3D模型,提高PCB设计的准确性。

u012526819的博客 2586

关于UMI设备采集数据的模型训练方法

模仿学习如专家模型、VLA模型,ACT、DP、openpi等算法模型训练时,都是使用的机器人的绝对位姿或关节角;而UMI记录的轨迹是相对于UMI起始点的,可以理解为是相对于起点的绝对增量,对应到机器人中就是相对于末端TCP的增量。在用模型进行训练时,当然可以,但这样进行模型训练的话达不到跨本体的能力,因为模型本身还是学习的基于机器人base坐标系的绝对位姿关系,倘若用这种方式进行处理,则UMI可以理解为是一个遥操的方法,本质还是记录的机器人的state。在看了和。

boss-dog 421

BZOJ 1188 [HNOI2007]分裂游戏 SG函数

BZOJ 1188 [HNOI2007]分裂游戏 SG函数

-Claude 1539

RAGFlow 系列教程 第三课:后端服务入口与请求生命周期

本文深入解析RAGFlow v0.25.0后端核心机制,重点介绍了Quart框架选型原因和服务启动流程。RAGFlow选择Quart作为Web框架,主要基于其异步能力对LLM调用的支持、Flask生态兼容性以及长响应超时处理优势。文章详细拆解了服务启动的8个关键步骤,从日志初始化到HTTP服务启动,并分析了配置加载、数据库初始化等核心环节。通过源码分析揭示了RAGFlow如何实现动态API注册、双重认证体系等关键技术点,为深入理解该系统的请求处理生命周期提供了基础。

weixin_43674738的博客 188

bzoj 分裂游戏

Description 聪聪和睿睿最近迷上了一款叫做分裂的游戏。 该游戏的规则试: 共有 n 个瓶子, 标号为 0,1,2.....n-1, 第 i 个瓶子中装有 p[i]颗巧克力豆,两个人轮流取豆子,每一轮每人选择 3 个瓶子。标号为 i,j,k, 并要保证 i < j , j < = k 且第 i 个瓶子中至少要有 1 颗巧克力豆,随后这个人从第 i 个瓶子中拿走一颗豆 子并在 j,k

jjs98 716

OpenClaw实战四|内容创作全流程AI助理:自动撰稿+智能剪辑+多平台发布,一人顶一个内容团队

AI替代的是「写稿、剪辑、发布」这种流水线工作,真正让你解放出来,去做选题、创意、人设、变现这些高价值的事。OpenClaw这套内容创作全流程AI助理,最大的价值不是「帮你发内容」,而是让一个人,拥有一个内容团队的产能。不管是个人博主、小团队,还是企业新媒体,都能用零代码的方式,快速搭建属于自己的自动化内容矩阵。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 589

【异常】安装hermes-agent提示Git克隆仓库网络中断 fetch-pack: unexpected disconnect while reading sideband packet

本文分析了Git克隆仓库时出现网络中断错误的常见原因及解决方案。报错表现为连接被远程主机关闭、管道破裂或数据包意外终止,通常由网络不稳定、仓库过大或配置不当引起。提供了5种优先级排序的解决方法:1)使用浅克隆减少数据量;2)优化Git配置参数;3)切换网络或配置代理;4)检查SSH密钥设置;5)改用HTTPS方式克隆。特别推荐先尝试「浅克隆+HTTPS」组合方案快速验证,若问题持续再根据具体报错深入排查。文中包含详细的命令示例和配置说明,适合不同网络环境下的Git用户参考。

奶爸的编程之路,也就一周冷个三天 1418

bzoj 1188: [HNOI2007]分裂游戏

SG定理 /************************************************************** Problem: 1188 User: lxy8584099 Language: C++ Result: Accepted Time:40 ms Memory:900 kb **********...

weixin_30482383的博客 118

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

BZOJ 1188: [HNOI2007]分裂游戏 博弈论

1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1191  Solved: 731 [Submit][Status][Discuss] Description 聪聪和睿睿最近迷上了一款叫做分裂的游戏。 该游戏的规则试: 共有 n 个瓶子, 标号为0,1,2.....n-1, 第 i 个瓶子中装

BlackJack 413

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

bzoj 1188: [HNOI2007]分裂游戏 sg函数

题意聪聪和睿睿最近迷上了一款叫做分裂的游戏。 该游戏的规则试: 共有 n 个瓶子, 标号为 0,1,2…..n-1, 第 i 个瓶子中装有 p[i]颗巧克力豆,两个人轮流取豆子,每一轮每人选择 3 个瓶子。标号为 i,j,k, 并要保证 i < j , j < = k 且第 i 个瓶子中至少要有 1 颗巧克力豆,随后这个人从第 i 个瓶子中拿走一颗豆 子并在 j,k 中各放入一粒豆子(j 可能等于

beginend 533

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

bzoj 1188: [HNOI2007]分裂游戏(sg函数)

1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 822  Solved: 508 [Submit][Status][Discuss] Description 聪聪和睿睿最近迷上了一款叫做分裂的游戏。 该游戏的规则试: 共有 n 个瓶子, 标号为 0,1,2.....n-1, 第 i 个瓶子中装

clover_hxy的博客 879

BZOJ 1188: [HNOI2007]分裂游戏

题目好熟悉(⊙o⊙) 想起来是07年的论文题 然后不会做┑( ̄Д  ̄)┍ 遂去翻论文 照着论文的放法乱搞出来了 #include #include #include using namespace std; bool ex[100]; int sg[30]; void build(){ sg[0]=0; for(int i=1;i<21;i++){ memset(ex,0,siz

月下沙茶树 332

[SG函数] BZOJ1188: [HNOI2007]分裂游戏

可以发现,一颗石子可以看作是一个独立的游戏。 nn 很小,瞎暴力求 SGSG 函数就好啦。#include<cstdio> #include<algorithm> using namespace std; const int maxn=105; int _test,n,allsg,a[maxn],sg[maxn],vis[maxn],clk,ans,ans1,ans2,ans3; int main

Lynstery's blog 426

BZOJ1188: [HNOI2007]分裂游戏(洛谷P3185)

SG函数

forezxl的博客 642

BZOJ1188:[HNOI2007]分裂游戏(博弈论)

Description 聪聪和睿睿最近迷上了一款叫做分裂的游戏。该游戏的规则试:共有n个瓶子,标号为0,1,2.....n-1,第i个瓶子中装有p[i]颗巧克力豆,两个人轮流取豆子,每一轮每人选择3个瓶子。 标号为i,j,k,并要保证i<j,j<=k且第i个瓶子中至少要有1颗巧克力豆,随后这个人从第i个瓶子中拿走一颗豆子并在j,k中各放入一粒豆子(j可能等于k)。 如果轮到某...

weixin_34279579的博客 207
上一篇: bzoj3576: [Hnoi2014]江南乐
下一篇: Codeforces 168D Wizards and Huge Prize
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值