bzoj3576: [Hnoi2014]江南乐

Stable-Baselines3性能优化:多环境训练对比指南(DummyVecEnv vs SubprocVecEnv) 本文深入对比了Stable-Baselines3中DummyVecEnv与SubprocVecEnv两种向量化环境的性能差异与应用场景。DummyVecEnv适用于轻量级、步进快的环境,调试友好且开销低;而SubprocVecEnv则通过真正的多进程并行,能显著加速计算密集型环境的训练。文章通过基准测试与决策树,指导开发者根据环境计算成本、CPU核心数等关键因素做出最优选择,以实现训练效率最大化。 阅读详情

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

思路:每堆石子都构成一个独立的游戏,所以SG[x]就表示只有一堆数量为x的石子的游戏的SG值,显然当x<F时,SG[x]=0。

然后我们枚举每种分法,可以得到所有的SG值。但是这是O(n^2),TLE....

为了降低复杂度,我们发现了一个很神奇的性质

n除以m最多只有O(根号n)个不同的值。

对于同一个n,分成m份和m+2份的局面是等价的

对于这题,我们就可以发现,有很多种分法是等价的

然后就可以O(n根号n)解决了。

(感觉讲的好混乱,还是贴个题解好了:http://blog.youkuaiyun.com/gromah/article/details/27326991)


#include<cstdio>
#include<cstring>
#include<algorithm>
const int maxn=1000010;
using namespace std;
int T,F,n,a[maxn],tim,vis[maxn],sg[maxn];bool bo[maxn];
int get(int x,int y){return (x&1)==0?0:y;}

int getsg(int x){
	if (x<F) return 0;
	if (bo[x]) return sg[x];
	bo[x]=1;
	for (int i=2;i<=x;i=x/(x/i)+1)
		for (int j=i;j<=i+1&&j<=x;j++)
			getsg(x/j+1),getsg(x/j);
	tim++;//只能放这里 
	for (int i=2;i<=x;i=x/(x/i)+1)
		for (int j=i;j<=i+1&&j<=x;j++)
			vis[get(x%j,sg[x/j+1])^get(j-x%j,sg[x/j])]=tim;
	for (int i=0;;i++) if (vis[i]!=tim) return sg[x]=i;
}

int main(){
	scanf("%d%d",&T,&F);
	while (T--){
		scanf("%d",&n);int ans=0;
		for (int i=1;i<=n;i++) scanf("%d",&a[i]),ans^=getsg(a[i]);
		printf("%d",ans?1:0);if (T) putchar(' ');
	}
	return 0;
}


山东大学FPGA课程实验一 加法器设计 电子设计自动化与FPGA设计,实验一 加法器设计 阅读详情

相关推荐

VMware17安装教程(附安装包)VMware17小白详细一键安装教程

VMware 17.5 是一款强大的虚拟机软件。本安装教程将为您详细介绍VMware17安装教程其下载、安装步骤及验证方法,助您轻松完成安装,开启虚拟化体验。

2501_91538706的博客 2万+

P3235 [HNOI2014]江南乐

原题网址P3235 [HNOI2014]江南乐 展开 题目描述 小A是一个名副其实的狂热的回合制游戏玩家。在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏。 游戏的规则是这样的,首先给定一个数F,然后游戏系统会产生T组游戏。每一组游戏包含N堆石子,小A和他的对手轮流操作。每次操作时,操作者先选定一个不小于2的正整数M (M是操作者自行选定的,而且每次操作时可不一样),然后将任意一堆数量不小于F的石子分成M堆,并且满足这M堆石子中石子数最多的一堆至多比石子数最少的

YSJ的博客 417

VSCode搭配Keil开发STM32:从环境配置到代码跳转全流程(避坑指南)

本文详细介绍了如何使用VSCode搭配Keil进行STM32开发,从环境配置到代码跳转的全流程指南。通过安装必备插件和正确配置项目文件,开发者可以在VSCode中享受现代编辑器的便捷功能,同时保留Keil的编译调试能力,提升嵌入式开发效率。

weixin_28832121的博客 253

LG P3235 [HNOI2014]江南乐(SG函数)

题目 首先这个题SG函数很明显。 枚举分为多少堆然后对子状态的SG函数求mex就行。 但是直接枚举是O(n2)O(n^2)O(n2) 可以用整除分块: n个石子分成m堆: 有nnn%mmm个大小为⌊nm⌋+1\lfloor\frac nm\rfloor+1⌊mn​⌋+1的石堆。 m−nm-nm−n%mmm个大小为⌊nm⌋\lfloor\frac nm\rfloor⌊mn​⌋的石堆。 现在只有r=n...

Freopen的博客 227

目标检测技术的发展:从R-CNN、YOLO到DETR、DINO

OV-DINO的出现标志着在开放域目标检测领域的重大进步,其在处理未见过的物体类别时的能力得到了显著提升。这项技术对于需要适应未知或变化环境的应用具有重要意义,如自动驾驶、机器人视觉、安防监控等。

DeepAIedu的博客 2629

一窥Memory测试算法及自我修复机制

摘要 为了满足新一代设备的需求,Memory的大小每三年就会增加4倍。深亚微米设备包含大量面积更小、访问速度更快的Memory。针对此类设计制定自动测试策略可以减少ATE(自动测试设备)的时间和成本。 内存故障的行为与经典的“Stuck-At”故障不同。因此,Memory的故障模型(由于其阵列结构)与标准逻辑的设计也是不同的。Memory测试除了进行故障检测和定位,还可以实现用冗余单元对...

路科验证 2万+

HNOI 2014 Day2 江南乐

第 3 题:江南乐(game),运行时限 3s,内存上限 512M 【问题描述】 小 A 是一个名副其实的狂热的回合制游戏玩家。在获得了许多回合制游戏的世界级奖项 之后,小 A 有一天突然想起了他小时候在江南玩过的一个回合制游戏。 游戏的规则是这样的,首先给定一个数 F,然后游戏系统会产生 T 组游戏。每一组游戏包 含 N 堆石子,小 A 和他的对手轮流操作。每次操作时,操作者先选定一个

Gromah 3020

ObjectMapper解析JSON数据

的时候捕获的数据,往往需要结合文档所定义的类进行转换,也就是。库中的一个关键类,它的作用是将。对象之间进行相互转换。

weixin_57128596的博客 975

[BZOJ3576][Hnoi2014]江南乐(博弈)

还有两三天终于可以放大周了。。。

ADP+Pi==ATP 730

触摸芯片RM1015B基本使用方法

RM1015B触摸芯片使用指南:该芯片采用4通道设计(实际使用3通道),通过I2C接口通信(设备地址0x2B)。硬件设计需注意中断/复位引脚复用,需上拉处理。软件配置包括初始化、中断处理和定时器扫描,通过设置各通道阈值(0-300W)调节灵敏度,值越小越灵敏。调试时可调用rm1015B_debug_func()输出波形数据。典型应用场景包括接近检测和手势识别,中断触发后需在8ms内响应。特别注意不同通道的寄存器映射关系及校准流程,确保检测准确性。

云淡风轻 176

xtop:multi_driven_net与incomplete_timing_cell fail reason 分析

man multi_driven_net”可以得知,这个问题是multi driven结构引起的,使用命令“get_failed_pins -reason multi_driven_net”,获取violation pin。“man incomplete_timing_cell”可以得知,这个fail reason的原因是缺少timing library cell,检查并补全后这个错误就显示了。这里选择的解决方法是修改lib文件,把inout改成input,重新lib2idb。通过这种方法解决了问题。

m0_61544122的博客 566

BZOJ3576: [Hnoi2014]江南乐

BZOJ3576: [Hnoi2014]江南乐 Description 小A是一个名副其实的狂热的回合制游戏玩家。在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏。 游戏的规则是这样的,首先给定一个数F,然后游戏系统会产生T组游戏。每一组游戏包含N堆石子,小A和他的对手轮流操作。每次操作时,操作者先选定一个不小于2的正整数M (M是操作...

weixin_30689307的博客 136

【异常】XXL-job触发调度:address:http://192.168.x.x:x/ code:500 msg:xxl-rpc remoting error(connect timed out)

XXL-JOB调度任务失败分析:调度中心(10.254.234.80)与执行器(192.168.x.x)连接超时,返回500错误。主要原因是网络不通或执行器异常:1.网络不通可能由防火墙或网段隔离导致;2.执行器未启动或端口未监听;3.地址配置错误。解决方案:1.关闭代理使用内网;2.测试网络连通性和端口可用性;3.检查执行器进程状态和端口监听情况;4.核对执行器地址配置;5.必要时配置防火墙规则放行端口。

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

[BZOJ3576][SG函数][搜索]HNOI2014:江南乐

BZOJ3576 显然整个局面的sg函数值为所有石头堆的sg函数值的异或和,那我们只需要计算每堆石头的sg函数值即可 我们考虑一堆石头数量为x,当它被拆分成m堆后,这m堆要么是⌊xm⌋\lfloor\frac{x}{m}\rfloor⌊mx​⌋,要么是⌊xm⌋+1\lfloor\frac{x}{m}\rfloor+1⌊mx​⌋+1,显然有不同的奇偶性,判断一下奇偶性就可以递归算出分解完后这一堆的s...

romiqi 167

winscp破解版

winscp:远程连接服务器,主机的方便快捷工具,解压后可直接使用

基于Matlab的典型二阶RLC振荡电路实验教学仿真.zip

基于Matlab的典型二阶RLC振荡电路实验教学仿真

BZOJ 3576: [Hnoi2014]江南乐【SG函数】

题目传送门 题目分析: 每堆石子是独立的,可以求出每堆的SG函数再异或起来。 所以考虑预处理(或者记忆化搜索)SG函数。 设石子数量为nnn,枚举它分成的堆数iii,那么较小堆的石子数是⌊ni⌋\lfloor\frac ni\rfloor⌊in​⌋(较大堆是⌊ni⌋\lfloor\frac ni\rfloor⌊in​⌋+1),设n/in/in/i的余数是kkk,那么大堆的数量是kkk,小堆的数量是...

Master.Yi的博客 191

bcprov-jdk16-1.46.jar

bcprov-jdk16-1.46.jar

BZOJ 3576: [Hnoi2014]江南乐

首先把游戏拆解一下会发现每一堆石子是一个游戏 所以是Multi-SG,总体sg值是每个游戏的sg值的异或和 考虑单个游戏,数量为n的一堆石子的后继状态是拆完之后的石子的sg值的异或和 于是结合SG定理就得到了一个优秀的m^2算法(优秀个毛线啊)(m为石子个数的最大值) 然后我们考虑一个比较特殊的情况 显然把n拆成m堆会出现k=n/m和k+1两种情况,堆数分别是k1=m-k2,k2=n%m

月下沙茶树 852

2001-2024年地级市互联网普及率数据-最新出炉.zip

一、资源特点全新力作:今年精心打造,人工细细打磨,品质上乘。权威精准:数据来源,准确靠谱,值得信赖。品质无忧:绝无数据造假,品质有保障,放心使用。二、适用人群学生:在校专科生、本科生、研究生,助力学业各个环节。教研人员:大学教师和学术科研工作者,为教学科研添力。三、适用专业社科经济:经济学、社会学专业适用。规划管理:地理学、城市规划,以及商业、工商管理专业皆可使用。

BZOJ 3576: [Hnoi2014]江南乐 (SG函数)

题意 有nnn堆石子,给定FFF,每次操作可以把一堆石子数不小于FFF的石子平均分配成若干堆(堆数&amp;amp;gt;1&amp;amp;gt;1&amp;gt;1). 平均分配即指分出来的石子数中最大值减最小值不超过111.不能进行操作就算输.询问先手是否有必胜策略. 分析 因为每一推石子实际上是独立的.于是就可以求出每一堆石子的SGSGSG函数后再异或起来. 于是看看怎么求SG(N)SG(N)SG(N).方法是枚...

Ark 407

bzoj 3576: [Hnoi2014]江南乐 分块+sg函数

题意首先给定一个数F,然后游戏系统会产生T组游戏。每一组游戏包含N堆石子,小A和他的对手轮流操作。每次操作时,操作者先选定一个不小于2的正整数M (M是操作者自行选定的,而且每次操作时可不一样),然后将任意一堆数量不小于F的石子分成M堆,并且满足这M堆石子中石子数最多的一堆至多比石子数最少的一堆多1(即分的尽量平均,事实上按照这样的分石子万法,选定M和一堆石子后,它分出来的状态是固定的)。当一个玩家

beginend 542

【BZOJ】3576: [Hnoi2014]江南乐

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3576 很显然,这是一个multi-nim游戏。 注意:1.一个点的SG值就是一个不等于它的后继点的SG的且大于等于零的最小整数。(mex)    2.主游戏的SG值等于所有子游戏的异或和       所以区分好主游戏和后继点的区别。    一开始多个石子堆组...

weixin_30408165的博客 99

bzoj 3576: [Hnoi2014]江南乐

Description 小A是一个名副其实的狂热的回合制游戏玩家。在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏。 游戏的规则是这样的,首先给定一个数F,然后游戏系统会产生T组游戏。每一组游戏包含N堆石子,小A和他的对手轮流操作。每次操作时,操作者先选定一个不小于2的正整数M (M是操作者自行选定的,而且每次操作时可不一样),然后将任意一堆数量不小于...

weixin_30413739的博客 68

BZOJ3576:[Hnoi2014]江南乐(博弈)

就是SG了......每堆石子的操作可以平均分为x堆且这堆不小于f才能分 暴力把每种操作分的堆的sg值xor起来就可以求出这个新的了然后这个题居然有个神优化很容易得到把x分为i堆的sg值为 (x % i == 1) ? sg[x / i + 1] : 0 ^ (i - x % i) % 2 == 1 ? sg[x / i] : 0然后对于x / i这样不同的值最多有根号x个 然后按x / i分块的...

lwqq3的博客 268

bzoj 3576: [Hnoi2014]江南乐【博弈论】

这个东西卡常……预处理的时候要先把i%j,i/j都用变量表示,还要把%2变成&1…… 首先每一堆都是不相关子游戏,所以对于每一堆求sg即可 考虑暴力枚举石子数i,分割块数j,分解成子问题求xor和(其实就是根据i/j,i/j+1的个数的奇偶性xor一下即可),然后对sg[i]暴力mex,这样是n^2的 考虑优化,注意到一共只有根号级别的i/j,所以根据这个分块,上面的xor和是跟距个数奇偶...

weixin_30693183的博客 130

【BZOJ 3576】 [Hnoi2014]江南乐

博弈论+优化~ (详细题解)

Regina8023 2035

bzoj3576 [Hnoi2014]江南乐

Description 有n堆石子,每堆石子数量不超过100000。两个玩家轮流操作,每次可以把数量&gt;=F的堆分成m份(m&gt;=2),且m份中最多和最少的两份相差不超过1 两人绝顶聪明,无法操作的人输,求谁会赢 Solution 非常有意思的sg函数题 设我们有石子数量为n,现在要分成m份 那么只有两种堆,一种数量为⌊nm⌋⌊nm⌋\lfloor\frac{n}{m}...

olahiuj的博客 236

【bzoj3576】【HNOI2014】江南乐

Description有n堆石子,每堆石子有a[i]个。 每次操作可以把某一堆不少于F个的石子堆分成m份(m>=2且m<=a[i]),并且尽量均分。即最多的石子堆和最少的最多相差1. 不能操作者输,求先手是否有必胜策略。 数据组数≤100,n≤100,F,a[i]≤10^5。Solution组合游戏。a[i]^2的sg转移还是挺显然的。 那么我们考虑如何优化。 我们发现,我们⌊nm⌋\lf

时光真疯狂, 我一路执迷于匆忙. 1130
上一篇: bzoj2066: [Poi2004]Gra
下一篇: bzoj1188: [HNOI2007]分裂游戏
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值