#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long a[],sum[],add[],n;
void pushup(long long rt){sum[rt]=sum[rt<<]+sum[rt<<|];}
void build(long long l,long long r,long long rt)
{
if (l==r){sum[rt]=a[l];return;}
long long mid=(l+r)>>;
build(l,mid,rt<<);
build(mid+,r,rt<<|);
pushup(rt);
}
void pushdown(long long rt,long long ln,long long rn)
{
if (add[rt])
{
add[rt<<]+=add[rt];
add[rt<<|]+=add[rt];
sum[rt<<]+=add[rt]*ln;
sum[rt<<|]+=add[rt]*rn;
add[rt]=;
}
}
void updata(long long L,long long R,long long C,long long l,long long r,long long rt)
{
if ((L<=l)&&(r<=R))
{
sum[rt]+=C*(r-l+);
add[rt]+=C; return;
}
long long mid=(l+r)>>;
pushdown(rt,mid-l+,r-mid);
if (L<=mid) updata(L,R,C,l,mid,rt<<);
if (R>mid) updata(L,R,C,mid+,r,rt<<|);
pushup(rt);
}
long long query(long long L,long long R,long long l,long long r,long long rt)
{
if ((L<=l)&&(r<=R)) return sum[rt];
long long mid=(l+r)>>;
pushdown(rt,mid-l+,r-mid);
long long ans=;
if (L<=mid) ans+=query(L,R,l,mid,rt<<);
if (R>mid) ans+=query(L,R,mid+,r,rt<<|);
return ans;
}
int main()
{
scanf("%lld",&n);
long long i,j,q,t,l,r,x;
for (i=;i<=n;++i) scanf("%lld",&a[i]);
build(,n,);
scanf("%lld",&q);
for (i=;i<=q;++i)
{
scanf("%lld",&t);
if (t==)
{
scanf("%lld%lld%lld",&l,&r,&x);
updata(l,r,x,,n,);
}
else
{
scanf("%lld%lld",&l,&r);
printf("%lld\n",query(l,r,,n,));
}
}
return ;
}

codevs 1082 线段树练习3 模板题的更多相关文章

  1. codevs 1082 线段树练习 3(区间维护)

    codevs 1082 线段树练习 3  时间限制: 3 s  空间限制: 128000 KB  题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...

  2. codevs 1082 线段树区间求和

    codevs 1082 线段树练习3 链接:http://codevs.cn/problem/1082/ sumv是维护求和的线段树,addv是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...

  3. codevs 1082 线段树练习3

    1082 线段树练习 3  时间限制: 3 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解       题目描述 Description 给你N个数,有两种操作: 1: ...

  4. Codevs 1082 线段树练习 3

    1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Maste 传送门 题目描述 Description 给你N个数,有两种操作: 1:给区间[a,b]的 ...

  5. 【BZOJ 3196】二逼平衡树 线段树套splay 模板题

    我写的是线段树套splay,网上很多人写的都是套treap,然而本蒟蒻并不会treap 奉上sth神犇的模板: //bzoj3196 二逼平衡树,支持修改某个点的值,查询区间第k小值,查询区间某个值排 ...

  6. codevs 1082 线段树练习3 (线段树)

    题目: 题目描述 Description 给你N个数,有两种操作: 1:给区间[a,b]的所有数增加X 2:询问区间[a,b]的数的和. 输入描述 Input Description 第一行一个正整数 ...

  7. 【树状数组区间修改区间求和】codevs 1082 线段树练习 3

    http://codevs.cn/problem/1082/ [AC] #include<bits/stdc++.h> using namespace std; typedef long ...

  8. codevs 1082 线段树练习 3 --分块练习

    时间限制: 3 s  空间限制: 128000 KB  题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区间[a,b]的所有数增加X 2:询问区间[ ...

  9. codevs 1082 线段树练习 3 区间更新+延迟标记

    题目描述 Description 给你N个数,有两种操作: 1:给区间[a,b]的所有数增加X 2:询问区间[a,b]的数的和. 输入描述 Input Description 第一行一个正整数n,接下 ...

随机推荐

  1. ZOJ 3829 Known Notation --贪心+找规律

    题意:给出一个字符串,有两种操作: 1.插入一个数字  2.交换两个字符   问最少多少步可以把该字符串变为一个后缀表达式(操作符只有*). 解法:仔细观察,发现如果数字够的话根本不用插入,数字够的最 ...

  2. POJ 3264 Balanced Lineup -- RMQ或线段树

    一段区间的最值问题,用线段树或RMQ皆可.两种代码都贴上:又是空间换时间.. RMQ 解法:(8168KB 1625ms) #include <iostream> #include < ...

  3. 权限框架 - shiro 简单入门实例

    前面的帖子简单的介绍了基本的权限控制,可以说任何一个后台管理系统都是需要权限的 今天开始咱们来讲讲Shiro 首先引入基本的jar包 <!-- shiro --> <dependen ...

  4. linux服务器报Too many open files的解决方法

    linux 上tomcat 服务器抛出socket异常“文件打开太多”的问题 java.net.SocketException: Too many open filesat java.net.Plai ...

  5. java 15-10 List的三个子类的特点

    List:(面试题List的子类特点) ArrayList: 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高. Vector: 底层数据结构是数组,查询快,增删慢. 线程安全,效率低. Li ...

  6. sql点滴46—Can't connect to MySQL server (10060)

    如下图所示,链接远程的数据库提示Can't connect to MySQL server (10060). 遇到这个问题,我们首先做一个分析,导致这种状况出现的几种原因: a.bind-addres ...

  7. acl拒绝访问流量

        interface Ethernet0/0 ip address 12.1.1.2 255.255.255.0 ip access-group 10 in half-duplex   R1# ...

  8. 基于React Native的Material Design风格的组件库 MRN

    基于React Native的Material Design风格的组件库.(为了平台统一体验,目前只打算支持安卓) 官方网站 http://mrn.js.org/ Github https://git ...

  9. ant命令总结

    ant命令总结 博客分类: 版本管理 svn , maven , ant   ant命令总结 1 Ant是什么?  Apache Ant 是一个基于 Java的生成工具. 生成工具在软件开发中用来将源 ...

  10. [CareerCup] 8.2 Call Center 电话中心

    8.2 Imagine you have a call center with three levels of employees: respondent, manager, and director ...