【题解】Luogu P10680 [COTS 2024] 双双决斗 Dvoboj

news/2025/2/7 10:42:31/文章来源:https://www.cnblogs.com/zhangxyhp/p/18702202

考虑如果没有修改,用 ST 表就非常舒服。

考虑暴力修改,需要修改所有覆盖了这个位置的区间,时间复杂度是 \(O(n)\) 的。

而如果只修改 \(\frac{\log n}{2}\) 层,时间复杂度就是 \(O(\sqrt{n})\) 的。查询时从上往下查,最多查到第 \(\frac{\log n}{2}\) 层,时间复杂度就也是 \(O(\sqrt{n})\) 的。于是就可以通过。

#include<bits/stdc++.h>
#define ll long long
#define il inlineusing namespace std;
namespace asbt{
namespace cplx{bool begin;}
const int maxn=2e5+5;
int n,m,blen,st[maxn][20];
il int Log(int x){if(x==1){return 0;}return Log(x>>1)+1;
}
il void upd(int l,int k){if(k==blen){return ;}if(l-(1<<k)>0){st[l-(1<<k)][k+1]=abs(st[l-(1<<k)][k]-st[l][k]);upd(l-(1<<k),k+1);}if(l+(1<<(k+1))-1<=n){st[l][k+1]=abs(st[l][k]-st[l+(1<<k)][k]);upd(l,k+1);}
}
il int query(int l,int k){if(k<=blen){return st[l][k];}return abs(query(l,k-1)-query(l+(1<<(k-1)),k-1));
}
namespace cplx{bool end;il double usdmem(){return (&begin-&end)/1048576.0;}
}
int main(){ios::sync_with_stdio(0),cin.tie(0);cin>>n>>m;for(int i=1;i<=n;i++){cin>>st[i][0];}blen=Log(n)>>1;for(int j=1;j<=blen;j++){for(int i=1;i+(1<<j)-1<=n;i++){st[i][j]=abs(st[i][j-1]-st[i+(1<<(j-1))][j-1]);}}while(m--){int opt,l,k;cin>>opt>>l>>k;if(opt==1){st[l][0]=k;upd(l,0);}else{cout<<query(l,k)<<"\n";}}return 0;
}
}
int main(){return asbt::main();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/879980.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAP ABAP ISM_SD_GET_PRICING_CONDITIONS 订单价格定价

SAP ABAP ISM_SD_GET_PRICING_CONDITIONS 订单价格定价SAP ABAP ISM_SD_GET_PRICING_CONDITIONS 订单价格定价DATA km LIKE STANDARD TABLE OF konv WITH HEADER LINE.CALL FUNCTION ISM_SD_GET_PRICING_CONDITIONSEXPORTINGin_vbeln = 0010500001in_posnr = 010TABLESkonv_tab…

Godot Engine

Godot Docs – 4.3 branch — Godot Engine (4.3) documentation in English,Best Wish 不负年华

Python与PyCharm的工具安装

主要针对windows环境进行部署并且联通oracle: 第一步:安装python (注:python的版本选用要与oralce版本一致,目前安装版本使用python 3.10.x与oracle 版本cx_Oracle-8.3.0-cp310-cp310-win_amd64.whl(注:cp310代表oracle版本)一致) 安装教程链接(转载):https://blog.c…

spring之自动注入

XML配置文件 使用autowired属性来进行自动注入,如下所示,如果 autowire="byType那么spring会在所有对象中查找类型为Cat所需要的属性的类型的对象,假设cat中有一个属性是类Class1,那么spring会查找类Class1对应的对象,如果找到且只找到一个,那么进行注入,否则就注入…

训练手势数据分类模型-从手势图片——手势关键点坐标-通过关键点识别手势

数据集:从手势图片——>手势关键点坐标手势图片,获取手势关键点数据from XEdu.hub import Workflow as wf import numpy as npdef get_model_path():import ospath = os.path.dirname(os.path.abspath(__file__))model_path = os.path.join(path,model.onnx)return model_…

【数学】信息论之从熵、惊奇到交叉熵、KL散度和互信息

转自:https://www.cnblogs.com/justLittleStar/p/17322197.html 一、熵(PRML) 考虑将A地观测的一个随机变量x,编码后传输到B地。这个随机变量有8种可能的状态,每个状态都是等可能的。为了把x的值传给接收者,需要传输一个3-bits的消息。注意,这个变量的熵由下式给出:⾮均…

用多项式回归分析简单投掷数据-训练投石机数据预测模型

用多项式回归分析简单投掷数据 进阶实验:训练投石机数据预测模型 问题描述:(1)投掷角度不变,已知电机速度,如何得出实际投掷距离?(2)其电机速度(motor_speed)和投掷距离(distance)的对应关系有什么关系? 投掷角度不变,电 机速度与投掷距离 的数据集展示: 学习:i可以通过…

css背景模糊效果

下面是效果下面是实现代码<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-…

线性回归模型训练-训练温度传感器数据预测模型

基础实验:训练温度传感器数据预测模型 任务描述:LM35是科创作品制作中常用的温度传感器(1)已知电压值, 如何得出实际温度值?(2)输出电压(Sensor)和真实温度(Temperature)有什么关 系?请借助大模型生成这两列数据的关系图 /目录学习:可以通过机器学习,训练传感器数据预测模型…

【分享】银行业如何实现内外网文件传输,保持核心竞争力?

数据要素是数字经济的重要基石,也是国家经济安全的关键要素。银行业数据因其数据体量大、数据类型多、涉及主体庞大及应用场景复杂等天然特征,在数据流转上面临风险和挑战,包括法律法规层面、安全层面、效率层面等。为响应和落实国家层面对于金融行业网络安全的建设要求,同…

SMT32的HEX文件里加入固件版本的方法(转)

使用MDK编译器,让STM32程序HEX文件中加入固件版本信息。 代码代码如下: //------------------------------------------------------------------------------#include <absacc.h>//------------------------------------------------------------------------------#d…

uniapp 自定义tabBar组件 custom-tab-bar

custom-tab-bar 自定义tabBar组件。 在小程序和App端,为提升性能,在 pages.json 里配置固定的原生tabBar。但在H5端,这一设计并不会提升性能。 同时,H5端尤其是PC宽屏,对tabBar的位置和样式有更灵活的需求,tabBar作为一级导航,更多的时候是在PC网页顶部而不是底部。 自定…