博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LOJ6346:线段树:关于时间 ——题解
阅读量:6856 次
发布时间:2019-06-26

本文共 1698 字,大约阅读时间需要 5 分钟。

题目还是没法粘贴……

一道蛮不错的题。

老年选手困了30min后才想要推式子实在是太懒了……

我们可以对每次更新列表看成系数*x即可。

举例:第i次有列表(l,r,x),则第j次求和时答案*(j-i)即可。

但是系数不统一很难受,于是得到:(i-k)*x=(i-1)*a,求a=x+(1-k)*x/(i-1),则(i-1)*a=(i-1)*x+(1-k)*x

于是我们用线段树多维护一个(1-k)*x就行了。

注意一下线段树常数问题。

#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N=1e5+5;inline int read(){ int X=0,w=0;char ch=0; while(!isdigit(ch)){w|=ch=='-';ch=getchar();} while(isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar(); return w?-X:X;}ll b[N],tr[N*4],lz[N*4],t[N*4],lazy[N*4];inline void push(int a,int l,int r){ int mid=(l+r)>>1; lz[a<<1]+=lz[a];lz[a<<1|1]+=lz[a]; tr[a<<1]+=lz[a]*(mid-l+1);tr[a<<1|1]+=lz[a]*(r-mid); lz[a]=0; lazy[a<<1]+=lazy[a];lazy[a<<1|1]+=lazy[a]; t[a<<1]+=lazy[a]*(mid-l+1);t[a<<1|1]+=lazy[a]*(r-mid); lazy[a]=0;}void mdy(int a,int l,int r,int l1,int r1,ll w,bool on){ if(r
>1; mdy(a<<1,l,mid,l1,r1,w,on);mdy(a<<1|1,mid+1,r,l1,r1,w,on); tr[a]=tr[a<<1]+tr[a<<1|1]; t[a]=t[a<<1]+t[a<<1|1];}ll qry(int a,int l,int r,int l1,int r1,ll k){ if(r
>1; return qry(a<<1,l,mid,l1,r1,k)+qry(a<<1|1,mid+1,r,l1,r1,k);}int main(){ int n=read(); for(int i=1;i<=n;i++)b[i]=b[i-1]+read(); int m=read(); for(int i=1;i<=m;i++){ int d=read(); if(d==1){ int l=read(),r=read(),x=read(); mdy(1,1,n,l,r,x,0);mdy(1,1,n,l,r,(1-i)*x,1); }else{ int l=read(),r=read(); printf("%lld\n",b[r]-b[l-1]+qry(1,1,n,l,r,i-1)); } } return 0;}

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客: +

+++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/luyouqi233/p/9055134.html

你可能感兴趣的文章
什么是事务型的存储引擎
查看>>
unity 生命周期
查看>>
一次观影经验看互联网的赚钱之道
查看>>
硬链接与符号链接的区别.
查看>>
手机自适应web
查看>>
第 6 章 存储 - 042 - 用 volume container 共享数据
查看>>
linux学习指南
查看>>
牛逼的vscode的设置
查看>>
DP 恢复命令omnir
查看>>
nagios
查看>>
3.文件属性,权限,正则表达式
查看>>
大数据从小数据开始
查看>>
我在老男孩学Python的日子_day2
查看>>
jenkins自动化部署
查看>>
优达学城数据分析师纳米学位——P5项目知识点整理贝叶斯规则
查看>>
python数据结构与算法(7)
查看>>
Java的新项目学成在线笔记-day6(十二)
查看>>
Program ape and siege lion
查看>>
阿里程序员带你全面深入了解正则表达式
查看>>
Vipkid怎么样,说说孩子在vipkid的学后体验。
查看>>