codeforces 13 E. Holes (分块)
来源:互联网 发布:计算机算法基础 编辑:程序博客网 时间:2024/06/06 09:20
题解:分块
对于每个块内维护每个点最远能跳到哪里,跳几步,然后查询的时候跳块计算就可以了
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define N 200003using namespace std;int n,m,belong[N],val[N],l[N],r[N];int deep[N],fa[N],mark[N],vis[N];void build(int x){for (int i=r[x];i>=l[x];i--) if (i+val[i]>r[x]) deep[i]=0,fa[i]=i+val[i]; else { deep[i]=deep[i+val[i]]+1;if (deep[i+val[i]]==0) fa[i]=i+val[i];else fa[i]=fa[i+val[i]];}}int main(){freopen("a.in","r",stdin);freopen("my.out","w",stdout);scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) scanf("%d",&val[i]);int block=400;int t=ceil(n*1.0/block);for (int i=1;i<=n;i++) belong[i]=(i-1)/block+1;for (int i=1;i<=t;i++) l[i]=n+1,r[i]=0;for (int i=1;i<=n;i++) {int t=belong[i];l[t]=min(l[t],i);r[t]=max(r[t],i);}for (int i=1;i<=t;i++) build(i);//scanf("%d",&m);for (int i=1;i<=m;i++) {int opt,x,k;scanf("%d",&opt);if (opt==1) {scanf("%d",&x);int ans=0; int ansx=0;while (x<=n) {ans+=deep[x]+1;if (x<=n) ansx=x; if (fa[x]>n) break;if (fa[x]<=r[belong[x]]) ansx=fa[x],x=fa[fa[x]];else x=fa[x];} printf("%d %d\n",ansx,ans);}else {scanf("%d%d",&x,&k);val[x]=k;build(belong[x]);}} }
0 0
- CodeForces 13E Holes(分块处理)
- [Codeforces 13E] Holes (分块)
- codeforces 13 E. Holes (分块)
- CodeForces 13E Holes(分块)
- CodeForces 13E. Holes 分块处理
- CF 13E Holes(分块处理)
- Codeforces Problem - 13E Holes
- codeforces 13EE. Holes(分块&动态树)
- [Codeforces13E]Holes(分块)
- CF-E. Holes(区间分块,二分思想)
- Holes CF 13E
- Codeforces Beta Round #13 Problem E Holes(平衡的思想)
- codeforces contest 13 problem E(分块)
- CF 13E Holes (块状链表)
- CF 13E Holes (块状链表)
- CF 13E Holes 【块状链表】
- 【CodeForces】E. Xenia and Tree(分块 + LCA)
- codeforces #307 E. GukiZ and GukiZiana (分块)
- 【CSDN专属】markdown编辑器使用指南 ---效果展示部分
- 正则表达式
- 常用的linux命令
- Hdu2102 A计划
- Unity UGUI源码调试与修改
- codeforces 13 E. Holes (分块)
- array_filter
- Not allowed to access triangles on mesh 'Combined Mesh (root: scene)
- loaded the "KSViewController" nib but the view outlet was not set.
- Python crawler(二):BeautifulSoup的安装及使用
- 黑帽SEO必须掌握的四种暗链代码
- MySQL - 替换,大小写,拼接,取几位,长度
- 发表文章要审核多久啊
- 实验1-顺序结构 —— C语言实验——单个字符输入和输出(1113) ★