没调出来 P2023
#include<iostream>
#include<cstdio>
#include<cstring> #define ll long long
#define N 100010 using namespace std;
ll ans,mod;
int n,m;
struct tree
{
int l,r;
int mul_,sum_;
long long sum;
}tr[N<<]; void pushup(int k)
{
tr[k].sum=(tr[k<<].sum+tr[k<<|].sum)%mod;
} void build(int k,int l,int r)
{
tr[k].l=l;tr[k].r=r;tr[k].sum_=;tr[k].mul_=;
if(l==r)
{
scanf("%lld",&tr[k].sum);
return;
}
int mid=(l+r)>>;
build(k<<,l,mid);build(k<<|,mid+,r);
pushup(k);
} void down_sum(int k)
{
tr[k<<].sum_=(tr[k].sum_+tr[k<<].sum)%mod;
tr[k<<|].sum_=(tr[k].sum_+tr[k<<|].sum)%mod;
tr[k<<].sum+=(tr[k<<].r-tr[k<<].l+)*tr[k<<].sum_;
tr[k<<].sum%=mod;
tr[k<<|].sum+=(tr[k<<|].r-tr[k<<|].l+)*tr[k<<|].sum_;
tr[k<<|].sum%=mod;
tr[k].sum_=;
} void down_mul(int k)
{
tr[k<<].mul_=(tr[k<<].mul_*tr[k].mul_)%mod;
tr[k<<|].mul_=(tr[k<<|].mul_*tr[k].mul_)%mod;
tr[k<<].sum_=(tr[k<<].sum_*tr[k].mul_)%mod;
tr[k<<].sum_=(tr[k<<|].sum_*tr[k].mul_)%mod; tr[k<<].sum_=(tr[k<<].sum*tr[k<<].mul_)%mod;
tr[k<<].sum+=(tr[k<<].r-tr[k<<].l+)*tr[k<<].sum_;
tr[k<<].sum%=mod; tr[k<<].sum_=(tr[k<<|].sum*tr[k<<|].mul_)%mod;
tr[k<<|].sum+=(tr[k<<|].r-tr[k<<|].l+)*tr[k<<|].sum_;
tr[k<<|].sum%=mod; tr[k].mul_=;
} void changesum(int k,int l,int r,int c)
{
if(l>r||r<l) return;
if(tr[k].l==l && tr[k].r==r)
{
tr[k].sum_+=c;
tr[k].sum+=(tr[k].r-tr[k].l+)*tr[k].sum_;
tr[k].sum%=mod;
return;
}
if(tr[k].mul_!=) down_mul(k);
if(tr[k].sum_) down_sum(k);
int mid=(tr[k].l+tr[k].r)>>;
if(r<=mid) changesum(k<<,l,r,c);
else if(l>mid) changesum(k<<|,l,r,c);
else changesum(k<<,l,mid,c),changesum(k<<|,mid+,r,c);
pushup(k);
} void changemul(int k,int l,int r,int c)
{
if(l>r||r<l) return;
if(tr[k].l==l && tr[k].r==r)
{
tr[k].mul_*=c;
tr[k].sum_*=c;
tr[k].sum*=c%mod;
//tr[k].sum+=(tr[k].r-tr[k].l+1)*tr[k].sum_;
tr[k].sum%=mod;
return;
}
if(tr[k].mul_!=) down_mul(k);
if(tr[k].sum_) down_sum(k);
int mid=(tr[k].l+tr[k].r)>>;
if(r<=mid) changemul(k<<,l,r,c);
else if(l>mid) changemul(k<<|,l,r,c);
else changemul(k<<,l,mid,c),changemul(k<<|,mid+,r,c);
pushup(k);
} int query(int k,int l,int r)
{
if(l>r||r<l) return ;
if(tr[k].l==l && tr[k].r==r)
return tr[k].sum%mod;//
if(tr[k].mul_!=) down_mul(k);
if(tr[k].sum_) down_sum(k);
int mid=(tr[k].r+tr[k].l)>>;
if(r<=mid) return query(k<<,l,r)%mod;
else if(l>mid) return query(k<<|,l,r)%mod;
else return query(k<<,l,mid)%mod+query(k<<|,mid+,r)%mod;
} int main()
{
scanf("%d%lld",&n,&mod);
build(,,n);
scanf("%d",&m);
int x,y,f,c;
for(int i=;i<=m;i++)
{
scanf("%d",&f);
if(f==)
{
scanf("%d%d%d",&x,&y,&c);
changemul(,x,y,c);
}
else if(f==)
{
scanf("%d%d%d",&x,&y,&c);
changesum(,x,y,c);
}
else
{
scanf("%d%d",&x,&y);
printf("%d\n",query(,x,y)%mod);
}
}
return ;
}
没调出来 P2023的更多相关文章
- 源码都没调试过,怎么能说熟悉 redis 呢?
一:背景 1. 讲故事 记得在很久之前给初学的朋友们录制 redis 视频课程,当时结合了不少源码进行解读,自以为讲的还算可以,但还是有一个非常核心的点没被分享到,那就是源码级调试, 对,读源码还远远 ...
- 京东首页原生----js制作|css动画|js动画|计时器--轮播图(好久没更新,这两天闲的蛋疼做个京东页面分辨率1366*768,919京东,适应没调!)要文件加关注找我要哦!
- 总是有一个程序的bug没找到
算法训练 Lift and Throw 时间限制:3.0s 内存限制:256.0MB 问题描述 给定一条标有整点(1, 2, 3, ...)的射线. 定义两个点之间的距离为其下标之 ...
- 【扯淡篇】CTSC/APIO/SDOI R2时在干什么?有没有空?可以来做分母吗?
注意: 我比较弱, 并没有办法把外链bgm搞成https, 所以大家可以选择"加载不安全的脚本"或者把https改成http以获得更好的阅读体验! 据说, 退役了要写写回忆录. 但 ...
- Webpack从入门到上线
webpack是目前一个很热门的前端打包工具,官网说得很清楚,webpack的出现就是要把requirejs干掉.同时它还提供了十分便利的本地开发的环境.网上并不容易找到一个讲解得比较详细完整的教程, ...
- 汤姆大叔 javascript 系列 第20课 最后的5到javascript题目
博客链接:http://www.cnblogs.com/TomXu/archive/2012/02/10/2342098.html 原题: 大叔注:这些题目也是来自出这5个题目的人,当然如果你能答对4 ...
- Daily Scrum Meeting ——ThirdDay(Beta)12.11
一.Daily Scrum Meeting照片 二.Burndown Chart 三.项目进展(check-in) 1.欢迎界面的优化,从模糊到清楚 2.新增主界面背景 3.新增注册背景 4.参与者侧 ...
- myeclipse导入项目出现jquery错误(有红叉)
今天导入了一个项目,但是进去之后jquery出现了红叉,如图(事实上在我没调好之前两个jquery文件都有叉号) 怎么调呢?右键jquery文件,选择MyEclipse->Exclude Fro ...
- iOS开发之使用CocoaPods更新第三方出现“target overrides the `OTHER_LDFLAGS`……”问题解决方案
今天在自己的项目中用CocoaPods引入第三方SDWebImage的时候,出现了问题.当更新完毕后,在终端没太注意这个问题的提示,就直接使用SDWebImage了,在使用的时候一些方法的提示和头文件 ...
随机推荐
- Spring学习_day03_事务
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! Spring_day03 一.事务 1.1 事务 事务 ...
- 宏基因组扩增子图表解读2散点图:组间整体差异分析(Beta多样性)
散点图 数据点在直角坐标系平面上的分布图.在宏基因组领域,散点图常用于展示样品组间的Beta多样性,常用的分析方法有主成分分析(PCA),主坐标轴分析(PCoA/MDS)和限制条件的主坐标轴分析(CP ...
- python numpy array 与matrix 乘方
python numpy array 与matrix 乘方 编程语言 waitig 1年前 (2017-04-18) 1272℃ 百度已收录 0评论 数组array 的乘方(**为乘方运算符)是每个元 ...
- vue自定义轻量级form表单校验
遇到了form表单提交的需求,找了vue的组件觉得不够灵活,有时间自己写了一个. 调用方法 全局引入注册: import va from 'global/js/va' va.install(Vue); ...
- Optimizing web servers for high throughput and low latency
转自:https://blogs.dropbox.com/tech/2017/09/optimizing-web-servers-for-high-throughput-and-low-latency ...
- 基于Arduino的音乐动感节奏灯
1.音乐动感节奏灯是个什么东西? 前段时间听音乐觉得无聊,便想着音乐光听也没意思啊,能不能 “看见” 音乐呢?于是谷歌了一番,发现还真有人做了将音乐可视化的东西,那就是音乐节奏灯.说的简单点就是LED ...
- 44.bucket filter:统计各品牌最近一个月的平均价格
课程大纲 GET /tvs/sales/_search { "size": 0, "query": { "term": { &quo ...
- HTML的基本操作学习----常用标签,特殊符号,列表,表格,表单
什么是HTML 常用标签 标题标签 段落标签 粗体标签+斜体 超链接标签 图片标签 列表标签 无序标签 有序标签 自定义列表 div标签 特殊符号 表格 表单 HTML 什么是 HTML? HTM ...
- nyoj_289_苹果_20140307
苹果 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 ctest有n个苹果,要将它放入容量为v的背包.给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值. ...
- POJ 3061 Subsequence 尺取
Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14698 Accepted: 6205 Desc ...