zoukankan      html  css  js  c++  java
  • 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
    ",dp[A][B]);
    		}
    		else 
    		{
    			int ans=0;
    			while(A<=n)
    			{
    				ans++;
    				A=A+a[A]+B;
    			}
    			printf("%d
    ",ans);
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    在线漏洞检测网站
    渗透测试工具库
    端口利用解析
    Linux安全脚本
    Linux常见系统故障
    Oracle
    Redis和MongoDB区别
    MHA在监控和故障转移时都做了什么
    Oracle 11g Dataguard参数详解
    Oracle
  • 原文地址:https://www.cnblogs.com/zufezzt/p/6829181.html
Copyright © 2011-2022 走看看