洛谷: P1531 I Hate It(线段树)

记录一道线段树单点修改题目。

创建线段树的时间复杂度为O(n),每次查找和修改的时间复杂度均为O(logn)

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 10;
int arr[maxn], tree[maxn], n, m;
void build(int node, int start, int end) {//构建线段树if (start == end) {tree[node] = arr[start];return;}int mid = start + (end - start) / 2;int left_node = 2 * node;int right_node = 2 * node + 1;build(left_node, start, mid);build(right_node, mid + 1, end);tree[node] = max(tree[left_node], tree[right_node]);
}
void Update(int node,int start,int end,int idx,int val) {//将下标idx的位置修改为valif (start == end) {if(arr[idx] < val){arr[idx] = val;tree[node] = val;}return;}int mid = start + (end - start) / 2;int left_node = node * 2;int right_node = node * 2 + 1;if (start <= idx && idx <= mid) {Update(left_node, start, mid, idx, val);}else {Update(right_node, mid + 1, end, idx, val);}tree[node] = max(tree[left_node], tree[right_node]);
}
int query(int node,int start,int end,int L,int R) {//寻找的区间是[L,R]if (start == L && end == R) return tree[node];if (R < start || end < L) return 0;if (start == end) return tree[node];int mid = start + (end - start) / 2;int left_node = node * 2;int right_node = node * 2 + 1;int L_max = query(left_node, start, mid, L, R);int R_max = query(right_node, mid + 1, end, L, R);return max(L_max, R_max);
}
int main() {cin >> n >> m;for (int i = 1; i <= n; i++) cin >> arr[i];build(1, 1, n);char c;int a, b;for (int i = 0; i < m; i++) {cin >> c >> a >> b;if (c == 'Q') cout << query(1, 1, n, a, b) << endl;else Update(1, 1, n, a, b);}return 0;
}

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

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

相关文章

OpenCASCADE+Qt创建建模平台

1、建模平台效果 2、三维控件OCCWidget 将V3d_View视图与控件句柄绑定即可实现3d视图嵌入Qt中&#xff0c;为了方便也可以基于QOpenGLWidget控件进行封装&#xff0c;方便嵌入各种窗体使用并自由缩放。 #ifndef OCCTWIDGET_H #define OCCTWIDGET_H#include <QWidget> #i…

javaWebssh药品进销存信息管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh药品进销存信息管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOM…

【Python】使用 onnxruntime-gpu 进行推理,解决运行时间久了显存被拉爆了

1. 问题 使用 onnxruntime-gpu 进行推理&#xff0c;解决运行时间久了显存被拉爆了 2. C/Python 配置 运行时&#xff0c;配置 provder , gpu_mem_limit 参数来进行限制&#xff0c;比如2G显存 21474836482 * 1024 * 1024 * 1024 Python providers [("TensorrtExecu…

【机器学习300问】29、训练数据少该怎么办?数据增强

一、什么时候会遇到训练数据少的情况&#xff1f; 在机器学习和深度学习中&#xff0c;遇到训练样本不足的情况通常发生在出现了新的任务、高昂的采集数据成本&#xff0c;稀有事件或小众领域等。接下来我展开说三种情形并分别举个例子。 &#xff08;1&#xff09;出现新的任…

392.判断子序列(Java)

目录 题目描述&#xff1a;输入&#xff1a;输出&#xff1a;代码实现&#xff1a; 题目描述&#xff1a; 给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位…

Filter过滤器+JWT令牌实现登陆验证

一、背景 我们需要在客户端访问服务器的时候给定用户一定的操作权限&#xff0c;比如没有登陆时就不能进行其他操作。如果他需要进行其他操作&#xff0c;而在这之前他没有登陆过&#xff0c;服务端则需要将该请求拦截下来&#xff0c;这就需要用到过滤器&#xff0c;过滤器可以…

原创+顶级SCI优化!23年新算法PSA优化CNN-LSTM-Attention一键实现多变量回归预测!

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 效果展示 数据介绍 创新点 模型流程 部…

【 React 】对React中类组件和函数组件的理解?有什么区别?

相关文章&#xff1a; 1 React 中的类组件 2 React中的函数组件 1. 类组件 类组件&#xff0c;也就是通过使用ES6类的编写形式去编写组件&#xff0c;该类必须继承React.Component 如果想要访问父组件传递过来的参数&#xff0c;可以通过this.props方式去访问 在组件中必须实现…

RabbitMQ的web控制端介绍

2.1 web管理界面介绍 connections&#xff1a;无论生产者还是消费者&#xff0c;都需要与RabbitMQ建立连接后才可以完成消息的生产和消费&#xff0c;在这里可以查看连接情况channels&#xff1a;通道&#xff0c;建立连接后&#xff0c;会形成通道&#xff0c;消息的投递、获取…

Vue-Router使用

1.安装 npm install vue-router4 2. 添加路由 新建router文件夹&#xff0c;新建文件 index.ts import { createRouter, createWebHashHistory,createWebHistory} from "vue-router";const routes [{path: /login,component: () > import("../views/Logi…

[leetcode 169][多数元素]

[leetcode 169][多数元素] 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1&#xff1a; 输入&#xff1a;nums [3,2,3] …

[XS2123] 集成功率 MOSFET V1.0, IEEE 802.3af 兼容的 PD 和 DC/DC 控制器

[XS2123] 集成功率 MOSFET V1.0&#xff0c; IEEE 802.3af 兼容的 PD 和 DC/DC 控制器 概述 XS2123 是一款基于 IEEE 802.3af 标准 PD 和DC/DC 集成的控制器。 该芯片的 PD 控制器部分为用电设备&#xff08;PD&#xff09;提供符合以太网供电&#xff08;PoE&a…

牛客网——美团2024届秋招笔试第三场编程真题

牛客网——美团2024届秋招笔试第三场编程真题 &#x1f60d;&#x1f60d;&#x1f60d; 相知&#x1f64c;&#x1f64c;&#x1f64c; 相识&#x1f622;&#x1f622;&#x1f622; 开始刷题1. 平均数为k的最长连续子数组2. 小球投盒3. 小红结账4. 小美的游戏5. 小美种果树6…

小米汽车上市进入倒计时,已开启内部试驾

在十四届全国人大二次会议上&#xff0c;全国人大代表、小米集团创始人、董事长CEO雷军回应了小米汽车的最新消息&#xff0c;小米汽车预计很快就要正式上市。 小米汽车推出了两款车型&#xff1a;SU7和SU7 Max。这两款车型均为纯电轿车&#xff0c;带来了不同的配置和性能特点…

python自学6

第一节第十章 开发图表 第一个可视化图表&#xff0c;折线图的开发 json数据格式 pyecharts模块 图标源码网站 Document gallery.pyecharts.org pyecharts模块的快速入门 pyecharts配置有两个选项 全局配置是对整个可视化界面进行配置&#xff0c;比如名字&#xff0c;工具…

代码复现错误

1. 问题&#xff1a; torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 64.00 MiB (GPU 0; 39.59 GiB total capacity; 37.72 GiB already allocated; 38.19 MiB free; 37.83 GiB reserved in total by PyTorch) If reserved memory is >> allocat…

防御保护 IPSEC VPPN实验

实验背景&#xff1a;FW1和FW2是双机热备 主备备份模式。 实验要求&#xff1a;在FW5和FW3之间建立一条IPSEC通道&#xff0c;保证10.0.2.0/24网段可以正常访问到192.168.1.0/24 IPSEC VPPN实验配置&#xff08;由于是双机热备状态&#xff0c;所以FW1和FW2只需要配置FW1主设…

【MGR】MySQL Group Replication 要求与限制

目录 17.3 Requirements and Limitations 17.3.1 Group Replication Requirements Infrastructure Server Instance Configuration 17.3.2 Group Replication Limitations Limit on Group Size Limits on Transaction Size 17.3 Requirements and Limitations 这个部分列…

项目人都应该来看看!!揭秘项目崩盘背后的逻辑,NFG数藏成破局关键

每天五分钟一套互联网知识&#xff0c;大家好我是啊浩说模式 在投资领域&#xff0c;项目泡沫崩盘是一个屡见不鲜的现象。当某个项目或行业被过度炒作&#xff0c;市场参与者纷纷涌入&#xff0c;推动价格不断攀升&#xff0c;直至形成一个看似坚不可摧的泡沫。然而&#xff0c…

用FPGA CORDIC IP核实现信号的相位检测,计算相位角

用FPGA CORDIC IP核实现信号的相位检测 1.matlab仿真 波形仿真代码&#xff1a; 代码功能&#xff1a;生成一个点频信号s&#xff0c;求出s的实部和虚部&#xff1b;并且结算相位角atan2。画出图形&#xff0c;并且将Q和I数据写入文件中。 %代码功能&#xff1a;生成一个点…