落谷P3368 【模板】树状数组 2【树形数组:区间更新,单点查询 】

本文深入解析了一道树状数组模板题,通过实例详细介绍了树状数组的使用方法,包括差分更新和区间查询等核心操作。文章提供了完整的AC代码,并附带了对树状数组原理的讲解链接。

题目链接:https://www.luogu.com.cn/problem/P3368

题目描述:

在这里插入图片描述

思路:

正如题目名字,树状数组模板题。
数组数组的详细讲解请看这位大佬的讲解:https://www.cnblogs.com/xenny/p/9739600.html
我在此不再多赘述。

ac代码:

#include <bits/stdc++.h>

using namespace std;

const int maxn = 500005;

int a[maxn],c[maxn];
int n;

//********下面为***树形数组的操作***** 
int lowbit(int x){
	return x&(-x);
}

void update(int i,int k){
	
	while(i <= n){
		c[i] += k;
		i += lowbit(i);
	}
	
}

int getsum(int i){
	int ans = 0;
	while(i > 0){
		ans += c[i];
		i -= lowbit(i);
	}
	return ans;
}
//********上面为***树形数组的操作***** 

int main(){//树形数组:区间更新,单点查询 
	int m;
	cin>>n>>m;
	memset(a,0,sizeof(a));
	memset(c,0,sizeof(c));
	for(int i = 1;i <= n;i++){
		cin>>a[i];
		update(i,a[i]-a[i-1]);//存入差值 
	}
	int a,b,c,d;
	while(m--){
		cin>>a;
		if(a==1){//更新区间 
			cin>>b>>c>>d;
			update(b,d);
			update(c+1,-d);
		}else{
			cin>>b;
			cout<<getsum(b)<<endl;
		}
	}
	
	
	return 0;
}
内容概要:本文详细介绍了一个基于MATLAB实现的线性回归(LR)电力负荷预测项目实例,涵盖了从项目背景、模型架构、算法流程、代码实现到GUI界面设计的完整开发过程。项目通过整合历史负荷、气象数据、节假日信息等多源变量,构建多元线性回归模型,并结合特征工程、数据预处理、正则化方法(如岭回归、LASSO)和模型评估指标(RMSE、MAPE、R&sup2;等),提升预测精度与泛化能力。文中还展示了系统化的项目目录结构、自动化部署脚本、可视化分析及工程集成方案,支持批量预测与实时滚动更新,具备高度模块化、可解释性强、部署友好的特点。; 适合人群:具备一定MATLAB编程基础,从事电力系统分析、能源管理、智能电网或数据建模相关工作的工程师、研究人员及高校师生。; 使用场景及目标:①应用于城市电力调度、新能源消纳、智能楼宇用能管理等场景下的短期负荷预测;②帮助理解线性回归在实际工程项目中的建模流程、特征处理与模型优化方法;③通过GUI界面实现交互式预测与结果可视化,支持工程落地与决策辅助; 阅读建议:建议结合提供的完整代码与GUI示例进行实践操作,重点关注数据预处理、特征构造、正则化调优与模型评估部分,深入理解各模块的设计逻辑与工程封装思路,以便迁移到类似的时间序列预测任务中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值