栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

小陶的疑惑2

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小陶的疑惑2

题目大意

就是区间修改单点查询。

题目分析

用差分思想,用树状数组维护

C o d e Code Code
#include
#include
#define lb(x) (x&-x)
#define ll long long
#define sco 1000010
using namespace std;
ll n,m,c[sco];
inline void xg(ll x,ll y){for(;x<=n;x+=lb(x))c[x]+=y;}
inline void add(ll l,ll r,ll x){xg(l,x);xg(r+1,-x);}
inline ll sch(ll x){
	ll ans=0;for(;x;x-=lb(x))ans+=c[x];
	return ans;
}
int main(){
	scanf("%lld%lld",&n,&m);
	for(ll i=1,x=0,y=0;i<=n;++i){
		scanf("%lld",&x);
		xg(i,x-y);
		y=x;
	}
	for(ll i=1,opt,l,r,x;i<=m;++i){
		scanf("%lld",&opt);
		if(opt==1){
			scanf("%lld%lld%lld",&l,&r,&x);
			add(l,r,x);
		}
		else{
			scanf("%lld",&x);
			printf("%lldn",sch(x));
		}
	}
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/702807.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号