HDU 1166 敌兵布阵 zwk线段树

这篇博客介绍了线段树在处理区间求和与单点修改问题的应用,通过实例探讨了ZWK线段树的实现。作者提到,虽然迭代方式的线段树在效率上可能不如传统实现,但根据个人习惯选择即可。文章引用了一份讲稿以辅助理解,并提及可能需要进一步研究KD-Tree。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线段树的板题,题意没什么好讲的吧。

区间求和,单点修改。

因为看主席树的时候看到那边的query是用迭代写的,因此想想来看看迭代的线段树。

其实关于单点修改和区间求和的部分,那张讲稿上已经讲得很清楚了,只是剩下一个怎么init线段树的问题。

其实仔细想一想应该也是能够写出来的,我就是按照他的思路然后自己写的......


init用的也是迭代的方法,假若不能理解的话,那还需再看看那个讲稿呀!

倒是打标记的地方没怎么看懂,可能是没写过线段树对应的题目的原因。


最后说关于效率的问题的话,以前写的普通线段树只用了390ms,用这个反倒是410ms+了。

反正哪个顺手写哪个吧,没有必要特意选择

讲稿:https://wenku.baidu.com/view/f27db60ee87101f69e319544.html

统计的力量,看了这个我或许还要去看看kd-tree?23333333


#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;
const int maxm=70010;

int st[maxm*5],n,kcase=1,times,m,x,y,query(int le,int ri);;
char str[20];

void init(),update(int node,int value);

int main(){
    ios_base::sync_with_stdio(0);
    cin>>times;
    wh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值