当前位置: 首页 > news >正文

P3372 【模板】树状数组 3( 区间修改 + 区间查询 )

题目链接:点击进入
题目
思路
代码
//#pragma GCC optimize(3)//O3
//#pragma GCC optimize(2)//O2
#include<iostream>
#include<string>
#include<map>
#include<set>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#define X first
#define Y second
#define best 131 
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define lowbit(x) x & -x
#define inf 0x3f3f3f3f
#define int long long
//#define double long double
//#define rep(i,x,y) for(register int i = x; i <= y;++i)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double pai=acos(-1.0);
const int maxn=1e6+10;
const int mod=998244353;
const double eps=1e-9;
const int N=5e3+10;
/*--------------------------------------------*/
inline int read()
{
    int k = 0, f = 1 ;
    char c = getchar() ;
    while(!isdigit(c)){if(c == '-') f = -1 ;c = getchar() ;}
    while(isdigit(c)) k = (k << 1) + (k << 3) + c - 48 ,c = getchar() ;
    return k * f ;
}
/*--------------------------------------------*/

int n,q,a[maxn],c1[maxn],c2[maxn];
void add(int x,int val)
{
	for(int i=x;i<=n;i+=lowbit(i))
		c1[i]+=val,c2[i]+=val*(x-1);
}
int getsum(int x)
{
	int sum=0;
	for(int i=x;i>=1;i-=lowbit(i))
		sum+=x*c1[i]-c2[i];
	return sum;
}

signed main() 
{
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>n>>q;
	a[0]=0;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		add(i,a[i]-a[i-1]);
	}
	while(q--)
	{
		int op,x,y,k;
		cin>>op>>x>>y;
		if(op==1)
			cin>>k,add(x,k),add(y+1,-k);
		else
			cout<<getsum(y)-getsum(x-1)<<endl;
	}
    return 0;
} 

相关文章:

  • zynq sd卡初始化流程
  • mybaties plus 更新null值进入数据库
  • 【AI编程技术爆发:从辅助工具到生产力革命】
  • 博客园账户注册全流程指南(附常见问题)
  • windows安卓子系统wsa隐藏应用列表的安装激活使用
  • OpenHarmony 5.0版本视频硬件编解码适配
  • 零基础开始学习鸿蒙开发-智能家居APP离线版介绍
  • 基于PLC的采摘机械手(论文+源码)
  • 《Vue Router实战教程》12.不同的历史记录模式
  • 《Python星球日记》第22天:NumPy 基础
  • 安科瑞EMS3.0破解工业企业源网荷储一体化“用能三难”问题 帮助企业高效管理
  • 什么是TensorFlow?
  • OpenGL学习笔记(assimp封装、深度测试、模板测试)
  • 全场景赋能|燕千云打造企业级智能运维平台
  • TensorFlow充分并行化使用CPU
  • 国产Linux系统统信安装redis教程步骤
  • 基于SpringBoot的动物救助中心系统(源码+数据库)
  • Zen 5白色装机优选,华硕X870 AYW GAMING WIFI W主板来了!
  • 网工基础 | 常见英文术语注解
  • 新闻推荐系统(springboot+vue+mysql)含万字文档+运行说明文档
  • 给人做阉割手术的网站/seo最新快速排名
  • 响应式网站建设企业/百度推广app
  • dw如何做网站/关键词异地排名查询
  • 网站建设标书模板/搜索引擎优化的基本内容
  • 怎么在网上建网站啊/自动外链网址
  • 如果熊掌号做的不好会不会影响网站/企业网站seo推广