![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构 —— 线段树
数据结构 —— 线段树
c4Lnn
这个作者很懒,什么都没留下…
展开
-
2021牛客寒假算法基础集训营6 H. 动态最小生成树
链接 https://ac.nowcoder.com/acm/contest/9986/H 题意 有一张 nnn 个点 mmm 条边的图,每条边连接点 ui,viu_i,v_iui,vi,边权为 wiw_iwi。他想进行 qqq 次操作,有如下两种类型: 修改第 xxx 条边为连接点 y,zy,zy,z,边权为 ttt; 查询只用编号在 [l,r][l,r][l,r] 范围内的边,得到的最小生成树权值是多少。 1≤n≤200,1≤m≤30000,1≤q≤30000,1≤ui,vi≤n,1≤wi≤1原创 2021-02-27 15:00:33 · 145 阅读 · 0 评论 -
2021牛客寒假算法基础集训营4 G. 九峰与蛇形填数
链接 题意 思路 代码 #include <bits/stdc++.h> #define SZ(x) (int)(x).size() #define ALL(x) (x).begin(),(x).end() #define PB push_back #define EB emplace_back #define MP make_pair #define FI first #define SE second using namespace std; typedef double DB; typed原创 2021-02-21 15:30:24 · 120 阅读 · 0 评论 -
2021牛客寒假算法基础集训营3 E. 买礼物
链接 https://ac.nowcoder.com/acm/contest/9983/E 题意 带修改询问区间内是否有相同的数 思路 记录每个点的与他相同值的前驱和后继 删除相当于链表删除操作 询问区间内是否有某点的前驱大于等于区间左端,线段树维护 代码 #include <bits/stdc++.h> #define SZ(x) (int)(x).size() #define ALL(x) (x).begin(),(x).end() #define PB push_back #define原创 2021-02-07 18:37:08 · 118 阅读 · 1 评论 -
HDU 6447. YJJ‘s Salesman
链接 http://acm.hdu.edu.cn/showproblem.php?pid=6447 题意 矩形地图上有n个村庄,从左上出发 在 (x,y)(x,y)(x,y) 时,只能移动到 (x+1,y)(x+1,y)(x+1,y),(x,y+1)(x,y+1)(x,y+1),(x+1,y+1)(x+1,y+1)(x+1,y+1) 而移动到 (x+1,y+1)(x+1,y+1)(x+1,y+1) ,如果是村庄,则可进行交易,获得收入 求能获得的最大收入 思路 离散化所有点 记 dp[i][j]dp[i][原创 2020-09-18 23:53:34 · 199 阅读 · 0 评论 -
黑暗爆炸 3307. 雨天的尾巴
链接 https://www.luogu.com.cn/problem/P4556 题意 树形图上每次分配给 aaa 到 bbb 路径上的所有点一个 zzz 类物品,分配 mmm 次,求每个点拥有最多的物品的种类 思路 树上差分+权值线段树合并 设 ccc 数组为每个节点拥有每类物品的计数数组 设 bbb 数组是差分后的计数数组 对于每次分配,让 b[x][z]b[x][z]b[x][z] 加 111 ,b[y][z]b[y][z]b[y][z] 加 111 ,b[lca(x,y)][z]b[lca(x,y原创 2020-07-29 14:10:33 · 197 阅读 · 0 评论