P3919 【模板】可持久化线段树 1(可持久化数组)(主席树)

news/2025/2/13 14:08:58/文章来源:https://www.cnblogs.com/gxjcnblogs/p/18713033


这道题要注意空间不能开太小,还有我第一次是build函数忘写return了,我很奇怪,结构体数组开小后,有一个报错和tle,不知道tle是怎么来的

#include<iostream>
#include<set>
#include<map>
#include<algorithm>
#include<vector>
#include<cmath>
#include<climits>
#include<cstring>
#define int long long
const int N = 1e6+5;
using namespace std;
char* p1, * p2, buf[100000];
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
int read()
{int x = 0, f = 1;char ch = nc();while (ch < 48 || ch>57){if (ch == '-')f = -1;ch = nc();}while (ch >= 48 && ch <= 57)x = x * 10 + ch - 48, ch = nc();return x * f;
}
int a[N], id=0,root[N];
struct tree {int left;int right;int val;
}tr[N*40];
void build(int& x, int l, int r) {x = ++id;if (l == r) { tr[x].val = a[l]; return; }int mid = (l + r) >> 1;build(tr[x].left, l, mid);build(tr[x].right, mid + 1, r);
}
void change(int x, int& y, int l, int r,int p ,int k) {y = ++id;tr[y] = tr[x];if (l == r) { tr[y].val = k; return; }int mid = (l + r) >> 1;if (p <= mid)change(tr[x].left, tr[y].left, l, mid, p, k);else change(tr[x].right, tr[y].right, mid+1, r, p, k);
}
int query(int x,int l, int r, int p) {if (l == r) { return tr[x].val; }int mid = (l + r) >> 1;if (p <= mid)return query(tr[x].left, l, mid, p);else return query(tr[x].right, mid+1, r, p);
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n, m;cin >> n >> m;for (int i = 1; i <= n; i++)cin >> a[i];build(root[0], 1, n);for (int i = 1; i <= m; i++) {int ver, op;cin >> ver >> op;if (op == 1) {int p, k;cin >> p >> k;change(root[ver], root[i], 1, n, p, k);}else {int p;cin >> p;cout << query(root[ver], 1, n, p) << endl;root[i] = root[ver];}}return 0;
}

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

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

相关文章

集装箱码头堆场计划智能优化系统

经纬恒润研发的堆场计划智能优化系统,以既有的码头操作系统为基础,建立与码头操作系统的数据接口,读取堆场结构、堆存状态、靠港船舶等信息,针对卸船、装船、集港、疏港等作业场景,围绕港口关注的箱区平衡、规避作业冲突、降低翻倒率、降低作业成本等核心指标,综合考虑各…

uniapp插件uni-upgrade-center-app升级在vue3中报错

记录使用npx @dcloudio/uvm@latest更新uniapp cli版本vite-plugin-uni报错的问题 在uniapp的vue3中,引入升级路径后提示:pnpm i @dcloudio/uni-uts-v1@3.0.0-3061420221215001 -D;用vscode终端安装后打包过程中一直提示cli升级,升级后安装对应的uts依赖包,真机模拟报错,提…

009 自定义事件组件交互

自定义事件可以在组件中反向传递数据,PROP可以将数据从父组件传递到子组件,那么反向如何操作呢,就可以利用自定义事件实现$emit<template><h3>单文件组件</h3><button @click="sendHandle">发送数据</button></teplate><s…

文本编辑器bowpad修改文件编码

bowpad下方有显示当前编码,此处为codepage 1252在【工具栏 - 其他】处可修改编码,如图“载入为” - 以xx编码重新打开本文件 “转换到” - 将当前文件转换为xx编码支持的编码挺多的

分享一款免费的微信群活码、QQ群活码平台、短链平台-畅联活码

今天发现了一款免费的微信群活码、QQ群活码平台、短链平台-畅联活码,在这里分享给大家。平台网址是ewm.kzrcw.com,只需要简单注册后既可以使用了。操作简单。平台源码已经公开,下载地址http://www.80cxy.com/Blog/ResourceView?arId=202502131143553051Oa499Z。 1、什么是微…

80N10-ASEMI高速风筒专用MOS管80N10

80N10-ASEMI高速风筒专用MOS管80N10编辑:ll 80N10-ASEMI高速风筒专用MOS管80N10 型号:80N10 品牌:ASEMI 封装:TO-252 批号:最新 最大漏源电流:80A 漏源击穿电压:100V RDS(ON)Max:9.5mΩ 引脚数量:3 芯片个数: 沟道类型:N沟道MOS管、中低压MOS管 漏电流:ua 特性:…

离线安装docker对应的docker-compose包

1、找到docker对应的docker-compose包,我的docker版本是26.1,对应的docker-compose版本为v2.27.12、到官网下载docker-compose的离线包 下载地址:https://github.com/docker/compose/releases3、下载好离线包,把离线包放在指定目录下就不需要配置环境变量 `mv docker-compo…

用网络流建模解决最大密度子图问题

在图论中,子图是由原图的一部分节点和这些节点之间的边构成的图。图的密度通常是指图中边的数量与节点的数量之比。形式化地,对于一个图 $ H = (V, E) $,其密度定义为: \[\text{密度}(H) = \frac{|E|}{|V|} \]其中,$ |E| $ 表示图 $ H $ 中的边的数量,$ |V| $ 是图 $ H $…

设置snipaste自启动

右键图标 ——》 首选项 ——》开机自启动 参考——https://blog.csdn.net/weixin_45428910/article/details/127798513

PostgreSQL认证是什么,值得考吗

PostgreSQL认证是一种PG数据库能力认证,是对一个人在PostgreSQL方面的知识积累和技能实操的考核,判断此人是否能够胜任PostgreSQL相关工作的一种考核。 由于数据库行业是对技术要求非常高的一种产品,所以在使用之前需要对使用者有一定的要求,PostgreSQL认证就是其中一种方式…

从 Windows Forms 到微服务的经验教训

Photo by Dan Counsell on Unsplash如果说软件开发中有什么不变的东西,那就是变化。 在 .NET 生态系统中摸爬滚打的这二十年里,我见证了各种框架的起起落落,目睹了容器化的崛起,也曾为微服务架构摇旗呐喊——而在几年前,微服务对许多人来说还只是晦涩难懂的概念。 然而,如…

C#之MethodImpl(MethodImplOptions.Synchronized)

[MethodImpl(MethodImplOptions.Synchronized)] 是 C# 中用于指定方法同步的一个特性,它控制方法的执行方式,确保在多线程环境下某个方法的执行是线程安全的。它可以用来避免多个线程同时访问一个共享资源而导致的竞态条件。 private static int count = 0;//[MethodImpl(Met…