http://www.lydsy.com/JudgeOnline/problem.php?id=2002

题意:

思路:
不会LCT,就只好用分块了。

将这n个数分成根号n块,对于每一块中的每一个数,处理出它跳出它所在块的下一个位置和所需跳数。

这样如果要修改x的话,我们只需要修改一个x所在的块即可。

 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
#include<stack>
#include<queue>
#include<cmath>
#include<map>
#include<set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pll;
const int INF = 0x3f3f3f3f;
const int maxn = +; int n, m;
int a[maxn],pos[maxn],jump[maxn]; int main()
{
//freopen("in.txt","r",stdin);
scanf("%d",&n);
for(int i=;i<n;i++) scanf("%d",&a[i]);
int block = sqrt(n+0.5);
for(int i=n-;i>=;i--)
{
int tmp = i+a[i];
if(tmp>=n) {pos[i]=-;jump[i]=;}
else if(tmp>=(i/block+)*block) {pos[i]=tmp;jump[i]=;}
else {pos[i]=pos[tmp];jump[i]=jump[tmp]+;}
}
scanf("%d",&m);
while(m--)
{
int x,y;
int op; scanf("%d",&op);
if(op==)
{
int ans = ;
scanf("%d",&x);
for(int i=x;i!=-;i=pos[i]) ans+=jump[i];
printf("%d\n",ans);
}
else
{
scanf("%d%d",&x,&y);
a[x]=y;
for(int i=x;i>=x/block*block;i--)
{
int tmp = i+a[i];
if(tmp>=n) {pos[i]=-;jump[i]=;}
else if(tmp>=(i/block+)*block) {pos[i]=tmp;jump[i]=;}
else {pos[i]=pos[tmp];jump[i]=jump[tmp]+;}
}
}
}
return ;
}

BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊(分块)的更多相关文章

  1. BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 分块

    2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOn ...

  2. BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 【分块】

    任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2002 2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 ...

  3. bzoj 2002 : [Hnoi2010]Bounce 弹飞绵羊 (LCT)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2002 题面: 2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: ...

  4. BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊

    2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 9071  Solved: 4652[Submi ...

  5. BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 LCT

    2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOn ...

  6. bzoj 2002: [Hnoi2010]Bounce 弹飞绵羊 動態樹

    2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 4055  Solved: 2172[Submi ...

  7. BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 (动态树LCT)

    2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2843  Solved: 1519[Submi ...

  8. BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊:分块

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2002 题意: 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆 ...

  9. bzoj 2002[Hnoi2010]Bounce 弹飞绵羊(分治分块)

    Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置 ...

  10. 洛谷 P3203 BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊

    题目描述 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系 ...

随机推荐

  1. flask 的类中间件

    需求 : 如果登陆了,就可以访问 index 和 home 页面,如果没登录就跳转到 login 登录 要怎么解决呢, session 对, 用 session 除了 Login 函数之外的所有函数里 ...

  2. 51Nod 1256 乘法逆元

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1256 给出2个数M和N(M < N),且M与N互质,找 ...

  3. 运行tomcat报Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]"

    解决方法1:   手动设置MaxPermSize大小,如果是linux系统,修改TOMCAT_HOME/bin/catalina.sh,如果是windows系统,修改TOMCAT_HOME/bin/c ...

  4. The Little Prince-12/17

    The Little Prince-12/17 今年四六级吐槽,说到做到!!!文思泉涌了兄弟们! “这就是你自己的错了,我本来并不想给你带来任何痛苦的,可你却要我驯服你……可你要哭了,可你什么好处也没 ...

  5. Web开发笔记 #06# 前后端分离

    前后端分离 关于“前后端分离”的深入讨论: 如何正确理解前后端分离? Web 前后端分离的意义大吗? 在上面有看到有谈“国外it公司分工”的回答,感觉挺有意思的.大概是讲国外it公司并不分前后端,只分 ...

  6. bzoj 3083

    bzoj 3083 树链剖分,换根 对于一颗树有以下操作 1.确定x为根,2.将u到v的简单路径上的数全改成c,3.询问当前以x为根的子树中的节点最小权值. 如果没有操作1:树链剖分很明显. 于是考虑 ...

  7. 详解Django中六个常用的自定义装饰器

    装饰器作用 decorator是当今最流行的设计模式之一,很多使用它的人并不知道它是一种设计模式.这种模式有什么特别之处? 有兴趣可以看看Python Wiki上例子,使用它可以很方便地修改对象行为, ...

  8. c++ STL中的set和multiset

    1.结构 set和multiset会根据特定的排序原则将元素排序.两者不同之处在于,multisets允许元素重复,而set不允许重复. set中的元素可以是任意类型的,但是由于需要排序,所以元素必须 ...

  9. Android开发发布真机调试

    使用真机测试原因: 1. 模拟器启动慢,真机测试速度较快 2. 有些程序在真机测试才有效,模拟器存在bug,结果要以真机为标准 连接方法: 1.设置手机为开发者模式(设置->关于手机->连 ...

  10. 前端基础小标签5 H5的一些新标签属性

    第二部分 部分图片和内容摘要于网络 二. formaction 属性规定当表单提交时处理输入控件的文件的 URL. formaction 属性覆盖 <form> 元素的 action 属性 ...