Another Array of Orz Pandas
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的更多相关文章
- XidianOJ 1120 Gold of Orz Pandas
题目描述 Orz Panda is addicted to one RPG game. To make his character stronger, he have to fulfil tasks ...
- XidianOJ 1195 Industry of Orz Pandas
--正文 贪心 排序好慢慢找就好 #include <iostream> #include <cstring> #include <cstdio> #include ...
- Cai Xukun and Orz Pandas Gym - 102309C
题目链接:https://vjudge.net/problem/Gym-102309C 题意:给定蔡徐坤投篮的位置和篮筐的位置以及最大初速度,求一个初速度和时间. 思路:一开始我以为要用到二分,后面仔 ...
- 【Codeforces】Orz Panda Cup
大大出的题 大大经常吐槽没有人补,所以我决定做一个 A. APA of Orz Pandas 题意:给你一个包含+-*/%和()的表达式,让你把它转化成java里BigInteger的形式 大概就像这 ...
- 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 ...
- Python:pandas(二)——pandas函数
Python:pandas(一) 这一章翻译总结自:pandas官方文档--General functions 空值:pd.NaT.np.nan //判断是否为空 if a is np.nan: .. ...
- xdoj-1117(记忆化搜索+组合数学)
因为我是从上到下,所以就不叫动态规划而叫记忆化搜索吧 (不过运行时间只有3ms....应该是很不错的吧) 排版怎么那么难看...编辑的时候不是这样子的啊?! 思想 : 大眼一看应该是一道很裸的状压dp ...
- scikit-learn_cookbook1: 高性能机器学习-NumPy
源码下载 在本章主要内容: NumPy基础知识 加载iris数据集 查看iris数据集 用pandas查看iris数据集 用NumPy和matplotlib绘图 最小机器学习配方 - SVM分类 介绍 ...
- 线性回归linear regression(python脚本实现)
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...
随机推荐
- ASP.NET网站单独
解决ASP.NET网站单独发布指定页面问题 目录 前提 开始 aspx.cs文件放到单独的类库项目 一个可选择勾选页面的发布工具:LimusicAddin 前提 Asp.net 发布分为:动态编译和预 ...
- Backbone.js的技巧和模式
Backbone.js的技巧和模式 Backbone.js的技巧和模式 本文由白牙根据Phillip Whisenhunt的<Backbone.js Tips And Patterns> ...
- nginx开启后主机无法访问虚拟机的nginx解决方案
如果IP可以通的话 一般是防火墙引起 方法1.cat /etc/sysconfig/iptables # Generated by iptables-save v1. :: *filter :INPU ...
- 关于MyEclipse SVN显示资源历史记录乱码问题
使用SVN查看历史记录进行文件对比的时候,有时会出现乱码问题,如下图: 解决办法:打开Window-->Preferences 如下: 原来默认的是GBK,改为UTF-8即可
- 初始化IoC容器(Spring源码阅读)
初始化IoC容器(Spring源码阅读) 我们到底能走多远系列(31) 扯淡: 有个问题一直想问:各位你们的工资剩下来会怎么处理?已婚的,我知道工资永远都是不够的.未婚的你们,你们是怎么分配工资的? ...
- WCF 学习笔记之双工实现
WCF 学习笔记之双工实现 其中 Client 和Service为控制台程序 Service.Interface为类库 首先了解契约Interface两个接口 using System.Service ...
- ExtJS初接触 - 在项目中使用ExtJS
ExtJS初接触 - 在项目中使用ExtJS 今天ExtJS官网发布了ExtJS最新正式版4.2.1.Ext JS 4.2.1 正式版 下载 ExtJS为开发者在开发富客户的B/S应用中提供丰富的UI ...
- 最好用的mysql密码忘记的解决方法
在windows下: 打开命令行窗口,停止mysql服务:Net stop mysql启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe (或mysqld.exe)执行:my ...
- 直插式精巧I/O模块:WIZ812MJ数据手册V1.1
1. 简介 WIZ812MJ是一款内嵌了W5100(硬件TCP/IP芯片,内置PHY).带其他胶合逻辑的MAG-JACK(带变压器的RJ45)网络模块.它可以当作一个组件使用,而且不需要为W5100和 ...
- DotNet加密方式解析--对称加密
离过年又近了一天,回家已是近在咫尺,有人欢喜有人愁,因为过几天就得经历每年一度的装逼大戏,亲戚朋友加同学的各方显摆,所以得靠一剂年终奖来装饰一个安稳的年,在这里我想起了一个题目“论装逼的技术性和重要性 ...