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 ...
随机推荐
- EPROCESS KPROCESS PEB
EPROCESS KPROCESS PEB <寒江独钓>内核学习笔记(2) 在学习笔记(1)中,我们学习了IRP的数据结构的相关知识,接下来我们继续来学习内核中很重要的另一批数据结 ...
- Hive查询结果批量插入分区
在hive的数据建表时,为了查询的高效性,我们经常会对表建立分区,例如下面的表 create external table dm_fan_photo_icf_basic(user string, it ...
- VS2010下C/C++连接MySql数据库的方法
1. 新建一个C++控制台程序 2. 选择项目 CMySql属性 3. 选择配置属性 C/C++ 常规 附加包含目录 4. 添加包含目录C:\Program Files\MySQL\Connector ...
- C++指针数组和指向指针的指针
指针数组 定义: 如果一个 数组,其元素均为指针型数据,该数组为指针数组,也就是说,指针数组中的每一个元素相当于一个指针变量,它的值都是地址. 形式: 一维指针数组的定义形式为: int[类型名] * ...
- Linux环境进程间通信(四):信号灯
linux下进程间通信的几种主要手段: 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允 ...
- NuGet的本地服务器安装与Package的发布
NuGet的本地服务器安装与Package的发布 主要的步骤是按照下面的例子来做的: NuGet学习笔记(1)——初识NuGet及快速安装使用 NuGet学习笔记(2)——使用图形化界面打包自己的类库 ...
- GEF-whole-upload教程中遇到的问题及解决方案
最近在学习GEF开发,使用的是GEF-whole-upload这个教程.由于教程当时所使用的版本与本人使用的版本有一些差异,中间出现了不少问题,现在将解决方案分享给大家. 本人使用的Eclipse版本 ...
- Linux环境fork()函数详解
Linux环境fork()函数详解 引言 先来看一段代码吧, 1 #include <sys/types.h> 2 #include <unistd.h> 3 #include ...
- (Java 多线程系列)java volatile详解
在前面的文章里面介绍了synchronized关键字的用法,这篇主要介绍volatile关键字的用法. Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其它 ...
- 搭建WEB邮件系统,爆强!
Linux+postfix+extmail+dovecot打造基于web页面的邮件系统 原文地址: http://blog.csdn.net/deansrk/article/details/67177 ...