ARC148总结
比赛情况
AC:3 / 6
排名:603rd
perf:1741
题目分析
A
假如 ,结果至多为2
也就是假如有最优解答案只能为1,那么求一下差分数组gcd是否大于等于2即可
B
首先明确,两字母相对,不同则不变,相同则都取反
因为只有一次机会,所以第一个 p
一定要改成 d
,也就是左端点小于等于第一个 p
而左端点小于第一个 p
,那么中间则全是 d
,而翻转后还要保持 d
,说明右边对应也是 d
,说明右边对应也没变,所以这是完全无贡献的,所以我们就直接令左端点为第一个 p
然后此时枚举右端点再暴力翻转求最小字典序即可
时间复杂度
C
假如一个点是正面,则首先要让其儿子都变成正面,再一起反转
如果一个点是反面,则要让其儿子都变成反面
一棵树一开始全是反面,代价显然是0
一个点变成正面了,他所有儿子都要变,然后他们整体又要变
但如果它父亲是正面,他们它们整体就不用变,留给父亲变
所以每个点翻转成正面分别计算一下其儿子数量,然后判断是否和父亲相等
然后那个时间戳维护一下就行
D
以下状态都是考虑Alice准备拿的状态
设两人当前差为 ,则如果两人取相同的没有影响,因为此时拥有必胜策略的人可以在相同时顺着对手拿的方式拿
所以把相同数排除后,那么剩下的数两两不同了
先从最终状态考虑,假设剩两个数
考虑如果Alice必输说明什么?
推一推式子,移一下就是: 且
显然可以合并,也就是 ,移项
那么显然对 分类讨论:
情况一: 为奇数
则:,说明 ,这显然不存在
说明这种情况下Alice输不了,也就是必赢
情况二: 为偶数
显然,此时Alice可能赢可能输
首先,假如不满足等式,Alice必赢
那满足等式Alice必输吗,我们要看最后 是否为0
考虑此时的贡献:,也就是
他们对 的贡献恰好是 ,那么我们只需要考虑满足条件成对 是否为偶数即可
如果偶数,Bob赢了,否则Alice赢了
你问我怎么构造方案?自己翻官方题解去
本文来自博客园,作者:zhangtingxi,转载请注明原文链接:https://www.cnblogs.com/zhangtingxi/p/16685142.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战