E. Array Queries
来源:互联网 发布:c语言倒九九乘法表 编辑:程序博客网 时间:2024/05/29 06:51
a is an array of n positive integers, all of which are not greater than n.
You have to process q queries to this array. Each query is represented by two numbers p and k. Several operations are performed in each query; each operation changes p to p + ap + k. There operations are applied until p becomes greater than n. The answer to the query is the number of performed operations.
The first line contains one integer n (1 ≤ n ≤ 100000).
The second line contains n integers — elements of a (1 ≤ ai ≤ n for each i from 1 to n).
The third line containts one integer q (1 ≤ q ≤ 100000).
Then q lines follow. Each line contains the values of p and k for corresponding query (1 ≤ p, k ≤ n).
Print q integers, ith integer must be equal to the answer to ith query.
31 1 131 12 13 1
211
Consider first example:
In first query after first operation p = 3, after second operation p = 5.
In next two queries p is greater than n after the first operation.
根据题意写就行了,主要是纯暴力会TLE,所以需要dp一下,大概找个区域,这里取350,大于根号100000就行。然后打个表
代码如下:
//// main.cpp// E. Array Queries//// Created by 徐智豪 on 2017/4/16.// Copyright © 2017年 徐智豪. All rights reserved.//#include <iostream>using namespace std;int n;int a[100005]={0};int q,p,k;int dp[100005][350]={0};int main(int argc, const char * argv[]) { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>q; for(int i=n;i>=1;i--) for(int j=1;j<350;j++) { if(i+a[i]+j>n)dp[i][j]=1; else { dp[i][j]=dp[i+a[i]+j][j]+1; } } for(int j=1;j<=q;j++) { cin>>p>>k; if(k<350) { cout<<dp[p][k]<<endl; } else { int count=1; while((p=p+a[p]+k)<=n) count++; cout<<count<<endl; } } return 0;}
- E. Array Queries
- E. Array Queries
- codeforces 797 E Array Queries
- codeforces 797E Array Queries
- Codeforces 797E Array Queries
- Codeforces 797E Array Queries
- codeforces 797E Array Queries
- CodeForces 266E More Queries to Array...
- Codeforces 797E Array Queries 分块思想
- Educational Codeforces Round 19 E. Array Queries
- Codeforces-797E-Array Queries(dp)
- Educational Codeforces Round 19-E. Array Queries
- Codeforces Round #163 (Div. 2) E. More Queries to Array...
- codeforces 266E More Queries to Array 线段树
- CF 266E More Queries to Array...(线段树)
- 【CodeForces】266E More Queries to Array... 线段树
- CodeForces 266E More Queries to Array... 线段树
- Educational Codeforces Round 19-E. Array Queries(简单dp)
- Oracle数据库保存、下载图片
- android 绘制过程
- hdu 1716 排列2 (dfs)
- Cookie机制
- 四月,定向sed自己
- E. Array Queries
- SSH远程登录服务器
- Android 控件
- RecyclerView 滑动时的优化处理
- 自定义微信菜单
- native-base中icon不能正确显示
- 剑指offer-生产者消费者模型
- 用BigDump工具导入超大MySQL数据库备份文件
- 用python实现快速排序算法