整理的算法模板合集: ACM模板


已知:暴力 + 暴力 + 10510^5105 = 分块

need[i] 表示从 i 开始,跳出所在块的步数;ver[i] 表示跳出当前所在的块后到了哪里;


罗老师的题解

//#pragma GCC optimize("Ofast")
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<bitset>
#include<map>#define debug(x) cout << x << "ok" << endl
typedef long long ll;
#define file freopen("1.in", "r", stdin);freopen("1.out", "w", stdout);
const int N = 2e5 + 7, M = 1e5 + 7, INF = 0x3f3f3f3f;
const int B = 260, B2 = 300;using namespace std;ll read()
{ll x = 0, f = 1;char ch = getchar();while(ch < '0' || ch > '9'){if(ch == '-')f = -1;ch = getchar();}while(ch >= '0' && ch <= '9'){x = x * 10 + ch - '0';ch = getchar();}return x * f;
}ll n, m;
ll val[N];
ll block;
ll need[N], ver[N];
ll bi[N];
ll st[N];//每个块开始的编号
ll ed[N];//每个块结束的编号inline void modify(int p, int w)
{val[p] = w;for(register int i = st[bi[p] + 1] - 1; i >= st[bi[p]]; -- i){if(i + val[i] >= st[bi[p] + 1]){need[i] = 1;ver[i] = i + val[i];}else {need[i] = need[i + val[i]] + 1;ver[i] = ver[i + val[i]];}}
}inline ll query(int p)
{int res = 0;while(p <= n){//主要是这点,可以直接出去res += need[p];p = ver[p];}return res;
}int main()
{n = read();block = sqrt(n);for(int i = 1; i <= n; ++ i){val[i] = read();bi[i] = (i - 1) / block + 1;//if(bi[i] != bi[i - 1])//说明一个新的块开始了//    st[bi[i]] = i;}//st[bi[n] + 1] = n + 1;//一个虚拟节点表示已经被弹飞了for(int i = 1; i <= block; ++ i){st[i] = (i - 1) * block + 1;ed[i] = i * block;}if(ed[block] < n){block ++ ;//一个角块st[block] = ed[block - 1] + 1;ed[block] = n;}for(int i = n; i >= 1; -- i){if(i + val[i] >= st[bi[i] + 1]){need[i] = 1;//可以一步出去ver[i] = i + val[i];}else {need[i] = need[i + val[i]] + 1;//所以我们是倒着推的ver[i] = ver[i + val[i]];//递推}}m = read();while(m -- ){int op = read(), x = read(), y;x ++ ;//题目里的编号是0 ~ n - 1,所以需要 ++if(op == 1){printf("%lld\n", query(x));}else {y = read();modify(x, y);}}return 0;
}

luogu P3203 [HNOI2010]弹飞绵羊(LCT ? 暴力分块 ! )相关推荐

  1. P3203 [HNOI2010]弹飞绵羊

    P3203 [HNOI2010]弹飞绵羊 题目描述 详见:P3203 [HNOI2010]弹飞绵羊 solution 这是一道LCT的裸题. 但是我并不想用LCT解决此题(In fact 是不会LCT ...

  2. HNOI2010——弹飞绵羊(lct)

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

  3. [HNOI2010]弹飞绵羊

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

  4. BZOJ 2002 HNOI2010 弹飞绵羊 分块

    题目大意及LCT版本题解:见 http://blog.csdn.net/popoqqq/article/details/38849471 今天手滑用分块又重写了一遍这道题0.0 分块就是短啊 将弹簧分 ...

  5. BZOJ2002 [HNOI2010] 弹飞绵羊

    LCT access完了一定splay再用!!! 悲伤= = LCT裸题 把调出去设虚点n+1即可 //Love and Freedom. #include<cstdio> #includ ...

  6. BZOJ P2002 [HNOI2010] 弹飞绵羊【分块】

    这道题就很优秀了.考试的时候完全没想到正解,最后写了一个暴力20分- 直接讲分块吧.我们预处理两个数组 S t e p [ ] , G e t [ ] Step[],Get[] Step[],Get[ ...

  7. AC日记——[HNOI2010]BOUNCE 弹飞绵羊 洛谷 P3203

    [HNOI2010]BOUNCE 弹飞绵羊 思路: SBlct: 代码: #include <bits/stdc++.h> using namespace std; #define max ...

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

    2002: [Hnoi2010]Bounce 弹飞绵羊 https://www.lydsy.com/JudgeOnline/problem.php?id=2002 分析: 绵羊在弹飞的路径中相当于一棵 ...

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

    2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 10761  Solved: 5542 [Su ...

最新文章

  1. ​GPLinker:基于GlobalPointer的实体关系联合抽取
  2. paramiko 使用总结(SSH 操作远端机器)
  3. 未来是属于 ARM 为代表的精简指令集还是 x86 为代表的复杂指令集?
  4. 获取map第一个的key和value_Hadoop学习之路(3)Map-Shuffle-Reduce详解与源码
  5. Infographic Modern Graphs Mac(现代信息图表动画fcpx插件)
  6. 耗费360万美元开发“无坚不摧”的电脑,美国这回下血本了!
  7. 计算机如何断开局域网,win7如何禁止局域网用户访问电脑
  8. 好看的php验证码,一个漂亮的PHP验证码_PHP教程
  9. vofuria的开发(1)
  10. JAVA 身份证号码的验证
  11. 富士智能e7说明书_富士智能停车系统配置
  12. 先验概率与后验概率的区别(老迷惑了)
  13. 效果图色彩与色彩搭配原理
  14. Xcode8 10大新特性
  15. 数独-比回溯法更优的人类思维逻辑的数独解法
  16. 手机怎样识别图片中的文字?
  17. 向前的快捷键_这些属于胜院的快捷键你知道吗?
  18. 燕千云知识库,解决你的知识沉淀烦恼
  19. 堆区(Heap)详细介绍
  20. 学习-Java类和对象之构造方法与对象创建之求椭圆面积

热门文章

  1. SSHFD:IBM提出的单阶段人体跌倒检测网络
  2. 你还在为了进高校做教师而读博吗?
  3. 栈与队列7——单调栈结构(进阶问题)
  4. PB 级数据处理挑战,Kubernetes如何助力基因分析?
  5. QMessageBox对话框
  6. MaxCompute2.0新功能介绍
  7. 类选择器和所作用的标签一起写为什么不起作用? - CSDN博客
  8. IDEA 配置maven
  9. container-as-a-service-0x00 -- 基于Docker的私有云混合云搭建需求
  10. Why HashMap Extends AbstractMap and Implement Map