简单易懂线段树-第一步建树-脑袋蒙的来瞧瞧

这篇博客介绍了线段树的基础概念,通过一个简单的ACM题目hdu1166,解释了线段树如何建树,并强调了在建立线段树时理解每个节点的作用和递归过程的重要性。博主分享了自己从困惑到逐渐理解的心路历程,建议使用scanf和printf以避免超时问题。
摘要由CSDN通过智能技术生成

看了网上好多好多好多的代码,能告诉我为啥都用 '>>'这些符号写的么...是感觉很好看么...(确实挺漂亮问题是本来就很蒙的好吧!)还有啊,确实是我实力太差define 定义左右儿子那每次看到函数里就蒙了,我都替换成正常的了

不过幸好在头脑清醒的时候弄明白了一些,虽然现在查询那还是不太懂

好啦好啦不多说了

首先我先把正常有加减乘除符号的代码给贴出来,当初我就是卡在这了,几乎没见到正常的代码= =本来就蒙蒙的

有这里卡住的看到就懂了就不用往下看了,用hdu1166举例子

//hdu 1166 敌兵布阵
#include<cstdio>
#include<cstring>

int sum[55555*4];

void pushup(int rt)
{
    sum[rt] = sum[rt*2]+sum[rt*2+1];
}

void build(int l, int r, int rt)
{
    if(l == r)
    {
        scanf("%d", &sum[rt]);
        return ;
    }
    int m = (l+r)/2;
    build(l, m, rt*2);
    build(m+1, r, rt*2+1);
    pushup(rt);
}

void update(int p, int add, int l, int r, int rt)
{
    if(l == r)
    
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值