bzoj2002 Bounce 弹飞绵羊 LCT

实战指南:如何用Elasticsearch+Milvus搭建十亿级多模态搜索系统(含性能调优) 本文详细介绍了如何利用Elasticsearch和Milvus构建十亿级多模态搜索系统,包括架构设计、性能调优和实战部署。通过混合架构实现高效文本检索与向量相似度计算,显著提升查询性能与扩展能力,适用于大规模多模态数据处理场景。 阅读详情

题目:某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,Lostmonkey可以修改某个弹力装置的弹力系数,任何时候弹力系数均为正整数。

Input

第一行包含一个整数n,表示地上有n个装置,装置的编号从0到n-1,接下来一行有n个正整数,依次为那n个装置的初始弹力系数。第三行有一个正整数m,接下来m行每行至少有两个数i、j,若i=1,你要输出从j出发被弹几次后被弹飞,若i=2则还会再输入一个正整数k,表示第j个弹力装置的系数被修改成k。对于20%的数据n,m<=10000,对于100%的数据n<=200000,m<=100000

Output

对于每个i=1的情况,你都要输出一个需要的步数,占一行。


思路:看成n个点,再加一个编号为n+1的点,跳出的点pre指向n+1,这样就成了一棵树,然后就可以套LCT了

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<numeric>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define INF 0x3f3f3f3f
#define mm(a,b) memset(a,b,sizeof(a))
#define PP puts("*********************");
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}
// 0x3f3f3f3f3f3f3f3f
// 0x3f3f3f3f

const int maxn=2e5+50;
const int maxe=2*maxn;
struct Edge{
    int to,next;
}edge[maxe];
int ch[maxn][2],key[maxn],pre[maxn],rev[maxn];
int siz[maxn];
bool rt[maxn];//标记节点是不是splay的根
int n;//n个节点,从1开始计数
void init(){
    for(int i=0;i<=n+1;i++){
        rt[i]=true;
        ch[i][0]=ch[i][1]=0;
        pre[i]=0;
        rev[i]=0;
        siz[i]=1;
    }
    siz[0]=0;
}
void update_rev(int x){
    if(!x) return;
    swap(ch[x][0],ch[x][1]);
    rev[x]^=1;
}
void push_down(int x){
    if(rev[x]){
        update_rev(ch[x][0]);
        update_rev(ch[x][1]);
        rev[x]=0;
    }
}
void push_up(int x){
    siz[x]=1;
    siz[x]+=siz[ch[x][0]];
    siz[x]+=siz[ch[x][1]];
}
void rotate(int x){
    int y=pre[x],d=ch[y][1]==x;
    ch[y][d]=ch[x][!d];
    pre[ch[y][d]]=y;
    pre[x]=pre[y];
    pre[y]=x;
    ch[x][!d]=y;
    if(rt[y]) rt[y]=false,rt[x]=true;
    else ch[pre[x]][ch[pre[x]][1]==y]=x;
    push_up(y);
}
//P函数先将根结点到x的路径上所有的结点的标记逐级下放
void P(int x){
    if(!rt[x]) P(pre[x]);
    push_down(x);
}
//将x旋转到根
void splay(int x){
    P(x);
    while(!rt[x]){
        int f=pre[x],ff=pre[f];
        if(rt[f]) rotate(x);
        else if((ch[ff][1]==f)==(ch[f][1]==x))
            rotate(f),rotate(x);
        else
            rotate(x),rotate(x);
    }
    push_up(x);
}
//将x到根的路径变成首选边
int Access(int x){
    int y=0;
    for(;x;x=pre[y=x]){
        splay(x);
        rt[ch[x][1]]=true;
        rt[ch[x][1]=y]=false;
        push_up(x);
    }
    return y;
}
int arr[maxn];
int main(){

    int m,op,u,v;
    while(~scanf("%d",&n)){
        init();
        for(int i=1;i<=n;i++)
            scanf("%d",&arr[i]);
        for(int i=1;i<=n;i++){
            int t=i+arr[i];
            if(t>n) t=n+1;
            pre[i]=t;
        }
        scanf("%d",&m);
        while(m--){
            scanf("%d",&op);
            if(op==1){
                scanf("%d",&u);u++;
                Access(u);
                splay(u);
                printf("%d\n",siz[ch[u][0]]);
            }
            else{
                scanf("%d%d",&u,&v);u++;
                Access(u);
                splay(u);
                pre[ch[u][0]]=0;
                rt[ch[u][0]]=true;
                ch[u][0]=0;
                int t=u+v;
                if(t>n) t=n+1;
                pre[u]=t;
            }
        }
    }
    return 0;
}


A100 NVLink集群极致优化指南 《A100 NVLink集群通信优化指南》摘要:针对A100 80G SXM机型NVLink 3.0集群,提供硬件配置检查方法(nvidia-smi topo -m)和强制启用指令。重点介绍NCCL参数调优(算法选择、低延迟协议配置)、GPUDirect RDMA启用步骤,以及单机/多机场景下的通信模式选择。包含PyTorch all_reduce基准测试方法,并给出带宽异常排查方案(dmesg检查、NCCL缓存重置)。通过CUDA Graph通信重叠和混合精度优化,可实现90%+带宽利用率。附猿界算力监控 阅读详情

相关推荐

八戒留档之宝塔部署edusoho

1.安装好基础的服务 2.上传你下载的代码到www/wwwroot文件3、配置网站 4.编辑创建的网站修改nginx文件 NGINX配置如下 server { listen 80; server_name 你的域名; root /www/wwwroot/项目文件名称/web/; location / { try_files $uri /app_dev.php$is_args$args; } ...

wolf23151269的博客 2540

HNOI 2010 弹飞绵羊 题解

题目传送门 题目大意: 你有一排弹力装置,对于第 iii 个弹力装置,它可以把在它上面的绵羊弹到 i+a[i]i+a[i]i+a[i] 的位置,假如这个位置不存在,则成这个绵羊被弹飞了。现在有两种操作: 1、更改某个装置的弹力; 2、询问绵羊从某个位置出发会被弹几次之后才会被弹飞。 题解 比较模板的 LCTLCTLCT 了,让每个 iii 向 i+a[i]i+a[i]i+a[i] 连边,让 i+a...

a_forever_dream的博客 260

SAP BTP-Cloud foundry 构建并部署JAVA应用程序

本文为 SAP BTP Java 应用程序的简单实例, 我们可以用此实例来熟悉SAP BTP 中的java应用开开发流程.在你完成改示例java应用程序以后, 我们可以直接使用该java应用程序进行后续的开发流程, 或直接构建一个新的JAVA应用程序来支持新的业务开发。

seyafly的博客 803

LCT(Bounce 弹飞绵羊,BZOJ 2002)

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2002 参考博客: http://blog.youkuaiyun.com/wzq_qwq/article/details/47397539 http://blog.youkuaiyun.com/saramanda/article/details/55210418 http://blog.cs

xl2015190026的博客 311

SBP依赖计算中的蝴蝶效应:一个Prefab修改如何触发全量重建?

本文深入探讨了Unity中SBP(Scriptable Build Pipeline)依赖计算的蝴蝶效应,解析了Prefab修改如何触发全量重建的机制。通过分析Asset与Object的层级关系、依赖计算的三种维度及CacheEntry系统,揭示了全量重建的根本原因,并提供了依赖可视化工具开发、优化策略与最佳实践,帮助开发者提升构建效率。

weixin_29015051的博客 444

CentOS 7 离线升级 OpenSSH 9.9p2 保姆级教程(含依赖包下载与常见报错解决)

本文提供了一份详尽的CentOS 7系统离线升级OpenSSH至9.9p2版本的完整教程。针对无外网环境,重点讲解了依赖包(尤其是OpenSSL 3.x)的离线下载与编译部署,并深入解决了编译过程中常见的“libcrypto.so缺失”等动态库链接错误。教程涵盖从环境准备、源码编译、服务配置到系统集成的全流程,最后还提供了关键的回滚方案与应急预案,是运维人员在内网环境中进行安全加固的实用指南。

weixin_29248313的博客 323

【HYSBZ2002】LCT模板 Bounce 弹飞绵羊(一般题)

Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣

Starlight的博客 650

FICO F.27 Customer statement 打印

需求,定制化打印,替换标准的F.27打印 类似于采购订单的打印,但是略有不同,查阅资料之后步骤如下: T-code F.27 is SAP standard program to produce customer/vendor correspondence (letter). Correspondence Type is used to specify the related printing program and form for the particular correspondence. SAP

IamRunjiang的博客 1963

BZOJ2002 Hnoi2010 Bounce 弹飞绵羊 【LCT】【分块】

BZOJ2002 Hnoi2010 Bounce 弹飞绵羊 Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵...

Dream_maker的博客 335

单总线CPU设计(变长指令周期3级时序)(HUST)(头歌实验)

利用比较器等功能模块将32位MIPS 指令字译码生成LW、SW、BEQ、SLT、ADDI、OtherInstr信号也就是利用比较器将指令字转换为译码信号,OP与不同信号对应(查询MIPS手册得知) 16 进制 :23 是 2进制: 00100011 ,把获得的OP,Func,和常数比对,相同输出1.按照题目要求填写表格,使用logisim的组合逻辑电路分析功能,当然也可以直接再logisim中写真值表。单总线采用变长指令周期,不同指令周期数不同,节拍数可变化。写的excel表格最终生成电路(当然 需要先把

xuxuaifeifei的博客 1万+

手把手教你在ARM64架构下编译和部署Milvus:从环境搭建到Docker镜像制作全攻略

本文详细介绍了如何在ARM64架构下编译和部署Milvus,包括环境搭建、源码下载与编译、Docker镜像制作等关键步骤。通过本文的方法,您可以快速构建适用于ARM64设备的Milvus编译环境,并解决常见的编译错误。同时,还提供了基于Docker Compose的测试方法,帮助用户高效地完成向量数据库的部署与应用。这是一次深入探索开源AI工具的实用指南,为开发者在多种硬件架构上的创新应用提供了强有力的支持。

小盒子的博客 1266

【LCT】BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊

BZOJ 1146 network网络管理Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,

puck_just_me的blog 664

Python爬虫深度对抗:拼多多与得物价格监控系统中的设备指纹模拟与SkyWalking风控绕过实战

在电商数据采集领域,拼多多和得物(毒)APP堪称国产风控系统的“双子星”。前者依托于拼多多集团强大的安全团队,后者则以其独特的“潮流单品”数据价值和高昂的爬取成本闻名。对于任何一名爬虫工程师而言,能够稳定、高效地获取这两大平台的价格、库存、销量等动态信息,都是一项极具挑战性的技术试金石。传统的基于requests库的简单HTTP请求,在面对这两款应用时几乎寸步难行。你会发现,无论怎样伪造User-Agent、怎样轮换代理IP,返回的永远是状态码412403,或者是一个包含验证滑块设备异常的JSON错误。

2201_76125261的博客 864

BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊 LCT

Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更

I'm Growing 569

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

[bzoj2002][Hnoi2010]Bounce 弹飞绵羊【LCT】

【题目描述】 Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道...

dizhengyue1902的博客 89

BZOJ_2002_[Hnoi2010]Bounce 弹飞绵羊_LCT

BZOJ_2002_[Hnoi2010]Bounce 弹飞绵羊_LCT Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置...

97

「UOJ2002 BZOJ2002」Bounce 弹飞绵羊【LCT 或 分块】

#2002. [Hnoi2010]Bounce 弹飞绵羊 Description 某天,LostmonkeyLostmonkeyLostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,LostmonkeyLostmonkeyLostmonkey在地上沿着一条直线摆上nnn个装置,每个装置设定初始弹力系数kik_iki​,当绵羊达到第i个装置时...

wzw 190

bzoj 2002 [Hnoi2010]Bounce 弹飞绵羊 lct

题意:告诉你每个装置的弹飞到哪个装置,问你从某个起点出发可以被弹飞多少次?(可修改) 解:LCT模板(link and cut and ask (size)) #include<bits/stdc++.h> #define mod 51061 #define en '\n' #define ll unsigned int const int maxn = 2e5 +100;...

fnq9999的博客 250

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

Time Limit: 10 Sec Memory Limit: 259 MB Submit: 11244 Solved: 5719Description某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达

Monica 338

BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊(LCT裸题)

题目链接:BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 题意: 有n个节点,每个节点有个弹力系数xi,表示第i个节点可以弹到i+xi,如果超过了n就弹飞。 现在有两个操作: 1 x 询问从x开始要弹几次才能弹飞。 2 x y 将x的弹力系数更改为y。 题解: 这题可以分块可以LCT。 不过nlongn的均摊LCT比nsqrt(n)的分块慢,因为分块的常数小。 ...

weixin_30708329的博客 123

BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊(LCT)

Description某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,Lo

Ab.Ever 446

[bzoj2002][Hnoi2010]Bounce弹飞绵羊_LCT

Bounce弹飞绵羊 bzoj-2002 Hnoi-2010 题目大意:n个格子,每一个格子有一个弹簧,第i个格子会将经过的绵羊往后弹k[i]个,达到i+k[i]。如果i+k[i]不存在,就表示这只绵羊被弹飞了。m次操作,支持:单点修改。查询:将一只绵羊放在一个格子上问弹几次能弹飞。 注释:$1\le n \le 2\cdot 10^5$,$1\le m \le 10^5$。 想法:当场切,...

weixin_30799995的博客 91

BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊 LCT

题意:链接 方法: LCT 解析: 首先这道题这么想: 最好还是把第i为的父亲设为i+x[i],然后刚開始我们把这些符合题意不超过n的边都连上。 然后两种操作 第一种是把某一个点的父节点改变了这怎么做呢? 显然我们连的边都是有向边。那么的话。我们就不须要进行翻转操作。 这是为什么呢? 假设如今对于一个点,要干掉它的原来的父...

aodiyi6351的博客 79

BZOJ2002 HNOI2010 Bounce 弹飞绵羊 LCT

题意:给定一个长度为N的数列,每个元素有一个权值w[i],表示从i出发能到i+w[i],如果结果大于N则结束,维护:1、从i出发能转移多少次 2、修改w[i] 题解:建树,在i(儿子)和i+w[i](父亲)之间连边,大于N直接连到虚根上,每次询问直接查找i到根节点路径上的点数。因为边的连接情况是动态的,所以用LCT维护 #include <cstdio> #i...

a18700013354的博客 179

BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊 (LCT)

两个操作 1,查询节点深度

= = 1775

[BZOJ2002][洛谷P3203][Hnoi2010]Bounce 弹飞绵羊(LCT维护链长)

luogu传送门 2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit:10 SecMemory Limit:259 MBSubmit:16082Solved:8241[Submit][Status][Discuss] Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游...

weixin_30340617的博客 134

bzoj2002: [Hnoi2010]Bounce 弹飞绵羊 [分块][LCT]

Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了...

dirushi6322的博客 119

【bzoj2002】【Hnoi2010】【Bounce 弹飞绵羊】【lct】

题目大意某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,Lostmonke

inklutcuah’s blog 336
上一篇: bzoj2049 Cave 洞穴勘测
下一篇: bzoj1036 树的统计Count
我不会额
博客等级 码龄11年 2粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值