CF797E Array Queries 题解
题意:
给定一个序列 ,给定 组 ,每次操作为 ,问需要操作几次才能使得 。
思路:
我们考虑根号分治。
模拟的时间复杂度为 ,如果全部数据按照模拟会超时。
我们设 当 时的答案,空间复杂度为 ,会炸。
我们考虑将两种做法结合起来。
如果 的时候,操作次数为 。当 的时候,答案必定会小于 。 对于这部分我们直接模拟即可。
对于 的这部分答案来说,我们可以用第二种办法提前预处理出来,询问时直接输出即可。
Ac code:
int dp[maxn >> 1][350], num, a[N]; signed main() { int tests = 1; //tests = read(); while(tests--) { int n = read(); num = sqrt(n); for(int i = 1; i <= n; i++) a[i] = read(); int T = read(); for(int i = n; i >= 1; i--) { for(int j = 1; j <= num; j++) { if(a[i] + i + j > n) dp[i][j] = 1; else dp[i][j] = dp[i + a[i] + j][j] + 1; } } while(T--) { int p = read(), k = read(); if(k <= num) printf("%d\n", dp[p][k]); else { int js = 0; while(p <= n) { js++, p = p + a[p] + k; } printf("%d\n", js); } } } }
本文作者:TLE_Automation
本文链接:https://www.cnblogs.com/tttttttle/p/16293591.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!