牛客小白月赛65
说实话题目质量一次比一次好。
A
注意到a和b的数量不能为负否则他们张成的空间为他们最大公约数的倍数。
这里枚举ab的数量1~1000即可。
B
实际上是字符串匹配问题,暴力可以过。
又打了一遍KMP算是复习。
C
利用一个pre数组记录前面的人。
询问的时候暴力向前跳 跳过的就缩起来就行了。
D
注意到后手可以进行与先手相反的操作使得a b同时-3。
不妨设a为ab中较小者。那么考虑a%3后 若a==0 后手必胜 那么后手一定会让a不断-3
同时若a1且b1同上后手必胜。考虑其他情况先手可以先进行一步上述末尾局面的操作转为后手同时迎来后手必胜局面。
所以除了上述两种情况其余情况先手必胜。
E
容易想到最多满足条件的排列为n,n-1,...1
一个数字x放在最前端满足条件数为Log[(x-1)]+1
类似于逆序对的试填法,先考虑n放在第一位带来的影响和k的大小。
小于就放上去反之放在中间某个位置剩下的分别反着放即可。
其余数字同理。
F
这个题很有意思。
我觉得出的很好是一个不多见的树上贪心问题。
先考虑根节点,设儿子中最大的时间为son,儿子总时间为sz.
容易想到若son<=sz-son 则双开时间可以为sz/2 这里注意奇偶。
证明使用归纳来证明。
如果不是呢 那就得考虑son里面的双开时间了 设son里面双开时间为f[son]
如果son-f[son]-f[son]<=sz-son 还是可以sz/2
反之为 sz+f[son]
这样求根的最大双开时间即求儿子的最大双开时间。可以递归来做。
考虑正确性 如果为前两种情况 答案是最小的。
后一种情况答案仍是最小的。
证毕。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!