Another Array of Orz Pandas

题目链接:http://acm.xidian.edu.cn/problem.php?id=1187

线段树

线段树维护区间和以及区间内各个数平方和,对于每一个询问ans=(sum2-pow_sum)/2

代码如下:

 #include<cstdio>
#include<cstring>
#define lson (x<<1)
#define rson (x<<1|1)
#define mid ((l+r)>>1)
#define N 100007
typedef long long LL;
struct nod{
LL sum,lazy,or2zds;
}a[N<<];
const LL mod=1e9+;
const LL Max=1e9;
LL n,m;
void push_up(LL x){
a[x].sum=(a[lson].sum+a[rson].sum)%mod;
a[x].or2zds=(a[lson].or2zds+a[rson].or2zds)%mod;
}
void push_down(LL x,LL l,LL r){
a[lson].or2zds=(a[lson].or2zds+(a[x].lazy*a[x].lazy)%mod*(mid+-l)+*a[x].lazy*a[lson].sum+mod)%mod;
a[lson].sum=(a[lson].sum+a[x].lazy*(mid+-l))%mod;
a[lson].lazy=(a[lson].lazy+a[x].lazy)%mod;
a[rson].or2zds=(a[rson].or2zds+(a[x].lazy*a[x].lazy)%mod*(r-mid)+*a[x].lazy*a[rson].sum+mod)%mod;
a[rson].sum=(a[rson].sum+a[x].lazy*(r-mid))%mod;
a[rson].lazy=(a[rson].lazy+a[x].lazy)%mod;
a[x].lazy=;
}
void add(LL x,LL l,LL r,LL cl,LL cr,LL v){
if(cl<=l&&r<=cr){
a[x].or2zds=(a[x].or2zds+(v*v)%mod*(r-l+)%mod+*v*a[x].sum)%mod;
a[x].sum=(a[x].sum+v*(r-l+))%mod;
a[x].lazy=(a[x].lazy+v)%mod;
return;
}
if(a[x].lazy!=)push_down(x,l,r);
if(cl<=mid)add(lson,l,mid,cl,cr,v);
if(mid<cr)add(rson,mid+,r,cl,cr,v);
push_up(x);
}
void query(LL x,LL l,LL r,LL ql,LL qr,LL &sum,LL &sum2){
if(ql<=l&&r<=qr){
sum=(sum+a[x].sum)%mod;
sum2=(sum2+a[x].or2zds)%mod;
return;
}
if(a[x].lazy!=)push_down(x,l,r);
if(ql<=mid)query(lson,l,mid,ql,qr,sum,sum2);
if(mid<qr)query(rson,mid+,r,ql,qr,sum,sum2);
}
int main(void){
while(~scanf("%lld%lld",&n,&m)){
memset(a,,sizeof(a));
LL l,r,op,k;
for(LL i=;i<m;i++){
scanf("%lld",&op);
if(op==){
scanf("%lld%lld%lld",&l,&r,&k);
add(,,n,l,r,k);
}else {
scanf("%lld%lld",&l,&r);
LL sum=,sum2=;
query(,,n,l,r,sum,sum2);
printf("%lld\n",(sum*sum%mod-sum2+mod)%mod*%mod);
}
}
}
return ;
}

Another Array of Orz Pandas的更多相关文章

  1. XidianOJ 1120 Gold of Orz Pandas

    题目描述 Orz Panda is addicted to one RPG game. To make his character stronger, he have to fulfil tasks ...

  2. XidianOJ 1195 Industry of Orz Pandas

    --正文 贪心 排序好慢慢找就好 #include <iostream> #include <cstring> #include <cstdio> #include ...

  3. Cai Xukun and Orz Pandas Gym - 102309C

    题目链接:https://vjudge.net/problem/Gym-102309C 题意:给定蔡徐坤投篮的位置和篮筐的位置以及最大初速度,求一个初速度和时间. 思路:一开始我以为要用到二分,后面仔 ...

  4. 【Codeforces】Orz Panda Cup

    大大出的题 大大经常吐槽没有人补,所以我决定做一个 A. APA of Orz Pandas 题意:给你一个包含+-*/%和()的表达式,让你把它转化成java里BigInteger的形式 大概就像这 ...

  5. numpy和pandas的基础索引切片

    Numpy的索引切片 索引 In [72]: arr = np.array([[[1,1,1],[2,2,2]],[[3,3,3],[4,4,4]]]) In [73]: arr Out[73]: a ...

  6. Python:pandas(二)——pandas函数

    Python:pandas(一) 这一章翻译总结自:pandas官方文档--General functions 空值:pd.NaT.np.nan //判断是否为空 if a is np.nan: .. ...

  7. xdoj-1117(记忆化搜索+组合数学)

    因为我是从上到下,所以就不叫动态规划而叫记忆化搜索吧 (不过运行时间只有3ms....应该是很不错的吧) 排版怎么那么难看...编辑的时候不是这样子的啊?! 思想 : 大眼一看应该是一道很裸的状压dp ...

  8. scikit-learn_cookbook1: 高性能机器学习-NumPy

    源码下载 在本章主要内容: NumPy基础知识 加载iris数据集 查看iris数据集 用pandas查看iris数据集 用NumPy和matplotlib绘图 最小机器学习配方 - SVM分类 介绍 ...

  9. 线性回归linear regression(python脚本实现)

    python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...

随机推荐

  1. TypeScript开发程序

    使用TypeScript开发程序 简介 TypeScript一直发展不错,我们公司在开发新功能时,考虑到程序的可维护性,使用了TypeScript编写浏览器上的程序,我们是从零开始使用TypeScri ...

  2. session验证登陆- 页面跳转

    用session验证登陆,当用户想访问一个页面时由于没有登录,就跳转到登录页面,登录后跳转到用户请求的页面,在session跳转中传上次请求的页面.  怎么获得这个url值并跳转到该页面呢? 以此跳转 ...

  3. 企业架构研究总结(32)——TOGAF架构内容框架之架构交付物

    3. 架构交付物(Architecture Deliverables) 架构交付物是在整个架构开发方法循环过程中所产生或被使用的契约性且正规化的企业架构内容,因而其与企业架构开发方法有着紧密的联系.本 ...

  4. SecureCRT退出全屏方法

    今天在使用SecureCRT的过程中,无意点了全屏,导致SecureCRT连接某台服务器的seesion全屏.后来想退出全屏,SecureCRT没有任何提示,上网查了一下资料说: 退出全屏的命令是AL ...

  5. OSGI原形(.NET)

    OSGI原形(.NET) 目前只做了基础的功能,比如: 各个模块单独的AppDomain容器 Activator激活 导出的服务检查 不过,虽说这样,但目前的这个版本已经能实现模块分离.互相依赖调用等 ...

  6. springMVC3学习(三)--handlerMapping和handlerAdapter

    基本结构和 springMVC3学习(一)--框架搭建 差不多,这里不再用Annotation注解的方式 以下只说明需要修改的部分: 1.在Spring配置文件中配置HandlerMapping.Ha ...

  7. jquery扩展方法

    jquery插件的开发包括两种:一种是类级别的插件开发,即给jquery添加新的全局函数,相当于给jquery类本身添加方法. jquery的全局函数就是属于jquery命名空间的函数,另一种是对象级 ...

  8. MSSQL Rebuild(重建)索引

    MSSQL Rebuild(重建)索引 前的项目是做数据库的归档,在每次archive后都需要对原数据库的索引进行rebuild,以减少索引碎片,于是乎就自己写了一段sql: DECLARE @tab ...

  9. LAMP on ubuntu12.04 PHP, Apache2, MySQL, Linux ( with phpmyadmin installed)

    there are several procedure which include: 1. Install the packages sudo apt-get install php5 php5-gd ...

  10. Python Tutorial - Parse JSON Objects with Python

    This tutorial is copied from youtube.com Here is the link: http://www.youtube.com/watch?v=RXqo3lC-JP ...