简单数学题。
图形画出来是一个满二叉树,所以数层数就好了,能除以多少个 就有多少层,然后答案就是 的这个次幂。
考察整除的性质。
由于只需考虑 中的奇数,所以一个一个来看。
肯定能被整除。
被 整除的条件是所有数位上的数相加是 的倍数,给定的数的数位和为 ,显然在 时一定包含因子 ,即此时一定能被 整除。除此之外能整除的条件就是 为 的倍数。
被 整除的数需要末尾为 或 ,所以只有当 时才行。
被 整除的数需要将原数三位截断后奇偶段做差后也为 的倍数。当 时这个差都是 ,一定整除;否则就只有 时行。
被 整除的条件和 相似,所有数位上的数相加是 的倍数,显然在 时一定包含因子 ,即此时一定能被 整除。除此之外能整除的条件就是 为 或 且 是 的倍数。
if 语句写一下就行了。
(在大佬 Hagasei 的悉心指导下会做了)
他曾说:“对于序列上的数区间问题,无非就固定一个端点和分治,放在 题多半都是固定端点。”
同时还要注意题目条件的特殊性。
看到序列中除了一个位置 ,其他都是 或 ,那么不妨先考虑全为 或 的情况。
题目要求所有的区间和的值域,在这样的序列上,假设我们已经找到了一个区间 ,那么将左端点或右端点移动一格,取值都只会变化 或 ,所以这个值域一定是一个连续的整数段,也就是说中间是不可能出现断层的。既然如此,我们就找出上下界,说白了对原序列各求一遍最大子段和和最小子段和即可。
接着考虑有一个特殊值的情况。
这时候不妨分类讨论子段和的包含对象。分为两类:包含此特殊值的和不包含她的,最后答案取并集即可。不包含的上面已经考虑过了,所以现在只用考虑包含她的,也可以分为两部分,分别是在她左边和在她右边。和上面的分析相同,我们也要找包含她的最大/最小子段和,又有:
最大子段和 左边最大后缀和 右边最大前缀和;
最小子段和 左边最小后缀和 右边最小前缀和。
这样一来这道题就解决了。
一道神奇的题目。
看到题的一瞬间就想到令 ,那么即求最大的 且 。
暴力地思考,找到 的取值范围,然后猜想取最大值时 距离左端点不会太远,暴力枚举 次,结果就这样过了……
(实际上复杂度是对的,直接暴力做也能过)
证明还是看题解吧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!