专栏文章
CF1270F 题解
CF1270F题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minewa4u
- 此快照首次捕获于
- 2025/12/02 01:17 3 个月前
- 此快照最后确认于
- 2025/12/02 01:17 3 个月前
给定一个 序列,问有多少个区间满足其长度整除其和。。
首先第一时间考虑到合法的长度/和对至多只有 个,于是考虑求这么多次以下问题:
问有多少个长度为 的区间和为 。
发现完全做不了一点!怎么办?
考虑根号分治。对于这种整除问题一个套路就是拿除数进行根号分治。在本题中即分治和。
考虑设定阈值 。
和 的情况是容易的:直接从每个数 开始,枚举往后的 个 ,对于枚举的每一个 ,求出 的范围使得 区间和为 。然后求出范围内有多少个 的倍数即可。
但是和 的情况有点难。
当除法根号分治无法处理大除数时,需要考虑商至多只有 个。
考虑枚举商 。此时有 。化简得 ,直接开桶统计即可,值域范围是 个。
但是接下来得问题是我们无法对 部分的区间和值范围进行限定,那怎么办?注意到我们是可以限制第一部分的倍率范围的,额外要求区间长度至少为 即可。
取 即可。
时间复杂度 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...