博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AHOI 2009 (BZOJ1798)维护序列 seq (线段树好题?)
阅读量:5050 次
发布时间:2019-06-12

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

我是不会说这个题很坑的。。

改了一晚上。。。
这里写图片描述

// by SiriusRen#include 
#define N 150000#define LSON l,mid,lson#define RSON mid+1,r,rson#define LL long longusing namespace std;LL n,m,mod,xx,yy,zz,jy;LL mul[N*4],add[N*4],sum[N*4];int get(){ int x=0;char p=getchar(); while(p<'0'||p>'9')p=getchar(); while(p>='0'&&p<='9')x=x*10+p-'0',p=getchar(); return x;}void build(int l,int r,int pos){ mul[pos]=1; if(l==r){sum[pos]=get();return;} int mid=(l+r)>>1,lson=pos<<1,rson=pos<<1|1; build(LSON);build(RSON); sum[pos]=(sum[lson]+sum[rson])%mod;}void push_down(int pos,int lson,int rson,int num){ mul[lson]=(mul[pos]*mul[lson])%mod; mul[rson]=(mul[pos]*mul[rson])%mod; add[lson]=(add[lson]*mul[pos]+add[pos])%mod; add[rson]=(add[rson]*mul[pos]+add[pos])%mod; sum[lson]=(sum[lson]*mul[pos]+add[pos]*(num-(num>>1)))%mod; sum[rson]=(sum[rson]*mul[pos]+add[pos]*(num>>1))%mod; mul[pos]=1;add[pos]=0;}void update(int l,int r,int pos){ if(l>=xx&&r<=yy){ if(jy==1){ mul[pos]=(mul[pos]*zz)%mod; add[pos]=(add[pos]*zz)%mod; sum[pos]=(sum[pos]*zz)%mod; } else{ add[pos]=(add[pos]+zz)%mod; sum[pos]=(sum[pos]+(r-l+1)*zz)%mod; } return; } int mid=(l+r)/2,lson=pos<<1,rson=pos<<1|1; if(mul[pos]!=1||add[pos]) push_down(pos,lson,rson,r-l+1); if(mid>=xx)update(LSON); if(mid
=xx&&r<=yy){ return sum[pos]; } if(mul[pos]!=1||add[pos]) push_down(pos,lson,rson,r-l+1); if(mid>=yy)return query(LSON); else if(mid

这里写图片描述

转载于:https://www.cnblogs.com/SiriusRen/p/6532420.html

你可能感兴趣的文章
jquery.lazyload延迟加载图片第一屏问题
查看>>
数据库连接
查看>>
delphi.指针.PChar
查看>>
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)...
查看>>
KMPnext数组循环节理解 HDU1358
查看>>
android调试debug快捷键
查看>>
【读书笔记】《HTTP权威指南》:Web Hosting
查看>>
Inoodb 存储引擎
查看>>
数据结构之查找算法总结笔记
查看>>
Android TextView加上阴影效果
查看>>
Requests库的基本使用
查看>>
C#:System.Array简单使用
查看>>
「Foundation」集合
查看>>
二叉树的遍历 - 数据结构和算法46
查看>>
类模板 - C++快速入门45
查看>>
RijndaelManaged 加密
查看>>
Android 音量调节
查看>>
windows上面链接使用linux上面的docker daemon
查看>>
Redis事务
查看>>