首页 > 代码库 > CodeForcs 797E Array Queries
CodeForcs 797E Array Queries
$dp$预处理,暴力。
如果$k > sqrt(n)$,那么答案不会超过$sqrt(n)$,暴力模拟即可。如果$k <= sqrt(n)$,那么可以$dp$预处理打表。
#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <queue>#include <stack>#include <vector>#include <algorithm>using namespace std;int dp[100010][320];int n,q;int a[100010];int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); int x = (int) sqrt(n); for(int p=1;p<=x;p++) { for(int i=n;i>=1;i--) { if(i+a[i]+p>n) dp[i][p] = 1; else dp[i][p] = dp[i+a[i]+p][p] + 1; } } scanf("%d",&q); for(int i=1;i<=q;i++) { int A,B; scanf("%d%d",&A,&B); if(B<=x) { printf("%d\n",dp[A][B]); } else { int ans=0; while(A<=n) { ans++; A=A+a[A]+B; } printf("%d\n",ans); } } return 0;}
CodeForcs 797E Array Queries
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。