bzoj 2002: [Hnoi2010]Bounce 弹飞绵羊(分块算法)

传送门

 

题意:

  中文题意,不再赘述。

题解:

  下午在补分块算法的相关知识,看到某大神博客推荐的这道题目,就试着做了做;

  TLE了一下午可还行;

  

  我的思路:

  将这 n 个点分成 sqrt(n) 块;

int belong[maxn];//belong[i]:第i个点所属的块
int L[maxn];//L[i]:i块的左端点
int nex[maxn];//nex[i]:从i点通过i+a[i],(i+a[i])+a[(i+a[i])]....来到belong[i]+1块的编号
int jump[maxn];//jump[i]:i点到达下一块的nex[i]点弹跳的次数
posted @ 2019-04-08 21:49  HHHyacinth  阅读(73)  评论(0编辑  收藏  举报