首页 > 编程语言 >区间和(C++)

区间和(C++)

时间:2024-05-30 18:31:23浏览次数:10  
标签:10 ch return int d% mid C++ 区间

题目描述】

给定一个全部为零的数列,规定有两种操作,一是修改某个元素,二是求区间的连续和。

【输入】

输入数据第一行包含两个正整数n,m(n≤100000,m≤500000) ,以下是m 行,

每行有三个正整数k,a,b (k=0 或1,a,b≤n ).k=0 时表示将a 处数字加上b ,k=1 时表示询问区间[a,b ]内所有数的和。

【输出】

对于每个询问输出对应的答案。

【输入样例】

10 20
0 1 10
1 1 4
0 6 6
1 4 10
1 8 9
1 4 9
0 10 2
1 1 8
0 2 10
1 3 9
0 7 8
0 3 10
0 1 1
1 3 8
1 6 9
0 5 5
1 1 8
0 4 2
1 2 8
0 1 1

【输出样例】

10
6
0
6
16
6
24
14
50
41
#include<bits/stdc++.h>
using namespace std;
long long t[500000],n,m;
void ch(int p,int l,int r,int x,int y){
	if(l==r){
		t[p]+=y;
		return;
	}
	int mid=l+r>>1;
	if(x<=mid)ch(p*2,l,mid,x,y);
	else ch(2*p+1,mid+1,r,x,y);
	t[p]=t[p*2]+t[p*2+1];
}
long long q(int p,int l,int r,int x,int y){
	if(y<l||x>r)return 0;
	if(x<=l&&y>=r)return t[p];
	int mid=l+r>>1;
	return q(p*2,l,mid,x,y)+q(p*2+1,mid+1,r,x,y);
}
int main(){
	scanf("%d%d",&n,&m);
	while(m--){
		int k,a,b;
		scanf("%d%d%d",&k,&a,&b);
		if(k) printf("%lld\n",q(1,1,n,a,b));
		else ch(1,1,n,a,b);
	}
	return 0;
}

标签:10,ch,return,int,d%,mid,C++,区间
From: https://blog.csdn.net/qxh10/article/details/139306536

相关文章

  • 一文搞懂C++继承、多继承、菱形继承、虚继承
    继承目录继承继承继承的访问权限子类赋值给父类赋值兼容规则“天然”的行为验证:1.其他权限继承能否支持赋值兼容规则2.是否"天然",有没有产生临时变量继承中的作用域继承的构造函数继承的拷贝构造继承的operator=继承的析构函数析构顺序析构的特殊处理继承中的static成员设计一......
  • C++结构体使用
    文章目录原文链接一、结构体基本概念二、使用及定义三、结构体数组四、结构体指针六、结构体做函数参数值传递和地址传递的区别七、结构体中const的使用场景原文链接c++中的结构体一、结构体基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型......
  • c++ 模板 元编程
    模板是门新语言C++元编程是一种使用模板元编程技术实现的编程方式,它允许程序员在编译期进行计算和代码生成。相比于传统的运行时编程,C++元编程可以提高程序的执行效率,减少资源开销,使得编译器能够优化代码,从而在一些对性能要求较高的场景中有着广泛的应用。   来自:https:/......
  • C++ Primer Plus(第6版):程序的创建过程
    一个C++程序是如何一步步创建的呢?一般来说主要分为三个过程:使用文本编辑器编写程序,并将其保存至文件中,这个文件就是程序的源代码。编译源代码。这是指将源代码翻译为主机使用的内部语言--机器语言,将翻译后的代码称之为目标代码(objectcode)。将目标代码与其它代码链接起来。链......
  • c++ 模板
     来自:https://sg-first.gitbooks.io/cpp-template-tutorial/content/T_ji_ben_yu_fa.html 1.Template的基本语法1.1TemplateClass基本语法1.1.1TemplateClass的与成员变量定义我们来回顾一下最基本的TemplateClass声明和定义形式:TemplateClass声明:template<type......
  • C++入门 类(构造函数 & 析构函数 & 显式调用)
    目录类的6个默认成员函数 构造函数特性函数名与类名相同无返回值(不需要写void) 无参构造函数和带参构造函数 构造函数可以重载编译器自动生成构造函数 默认构造函数 实践总结析构函数 显式调用隐式调用 特性 析构函数名是在类名前加字符~ 无参数无返......
  • 如何设计简单词法分析器 C++(面向对象)
    前言与其他教程不同,本文实现的词法分析器借鉴于C++输入流我搜过的教程基本上都是从状态转换的思想入手,虽然本文思路类似于状态转换,但也有独到之处。从面向对象的角度其他教程大多采用面向过程,二者都能解决问题,各有优劣。只不过我从面向对象的角度,给读者提供一个新......
  • C#与C++类型对应关系总结
    另:在进行string转换时,需要加入前缀[MarshalAs(UnmanagedType.LPStr)]lpdword对应于refint C#调用DLL文件时参数对应表  C++中的DLL函数原型为extern"C"__declspec(dllexport)bool方法名一(constchar*变量名1,unsignedchar*变量名2)extern"C"__d......
  • 【C++】【MFC】模态和非模态对话框
    1、模态对话框,开启后限制操作父窗口voidCMFCApplication1Dlg::OnBnClickedButton2(){//TODO:在此添加控件通知处理程序代码CDlgExeCexec;exec.DoModal();}调用DoModal即可完成。 2、非模态对话框,开启后对任意窗口都无限制voidCMFCApplication1Dlg......
  • 编程奇境:C++之旅,从新手村到ACM/OI算法竞赛大门(基础语法)
    踏入C++王国的神秘之门,首要任务是装备上基础语法这把万能钥匙,它不仅是你与代码世界对话的初级咒语,更是构筑编程魔法塔的基石。想象自己是一位即将踏上征途的勇士,先要学会站立、行走,方能奔跑、飞跃。基础语法:勇者的起跑线顺序结构:这就像是一场精心策划的冒险,你的每一个指令—......