没调出来 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了,在使用的时候一些方法的提示和头文件 ...
随机推荐
- css的基本单词
<border>边框 border边框 <text>文本 text文本 <indent>缩进 indent缩进 <align>对齐方式 align对齐方 ...
- Python 之selenium+phantomJS斗鱼抓取案例
from selenium import webdriver from bs4 import BeautifulSoup import time if __name__ == '__main__': ...
- redis键的过期和内存淘汰策略
键的过期时间 设置过期时间 Redis可以为存储在数据库中的值设置过期时间,作为一个缓存数据库,这个特性是很有帮助的.我们项目中的token或其他登录信息,尤其是短信验证码都是有时间限制的. 按照传统 ...
- 考试T1总结(又CE?!)
考试T1CE... 最近不适合考试 T1 扶苏是个喜欢一边听古风歌一边写数学题的人,所以这道题其实是五三原题.歌曲中的主人公看着墙边的海棠花,想起当年他其实和自己沿着墙边种了一排海棠,但是如今都已枯萎 ...
- Aizu - 1379 Parallel Lines
平行直线 题意:给出一些点,这些点两两相连成一条直线,问最多能连成多少条直线. 思路:暴力出奇迹!!记得当时比赛做这道题的时候一直依赖于板子,结果却限制了自己的思路,这得改.dfs直接暴力,但是需要将 ...
- 弹层蒙版(mask),ios滚动穿透,我们项目的解决方案
问题描述 项目开发遇到一个ios独有的问题,在wkwebview中稳定复现 问题: 弹出一个蒙版,当在蒙版上面滑动的时候蒙版后面的内容滚动了 这当然是ios的bug,但是经过我们测试iphone7也会 ...
- ActiveMQ学习总结(10)——ActiveMQ采用Spring注解方式发送和监听
对于ActiveMQ消息的发送,原声的api操作繁琐,而且如果不进行二次封装,打开关闭会话以及各种创建操作也是够够的了.那么,Spring提供了一个很方便的去收发消息的框架,spring jms.整合 ...
- CF586D. Phillip and Trains
/* CF586D. Phillip and Trains http://codeforces.com/problemset/problem/586/D 搜索 */ #include<cstdi ...
- github在README中展示demo
2017年更新,现在github再master分支直接就可以操作,所以我改了这篇文章 问题所在? 解决办法? 博主建议? 一:问题的所在 相信很多小胖友们在把自己的网页上传到github仓库中,都 ...
- ZooKeeper教程资源收集(简介/原理/示例/解决方案)
菩提树下的杨过: ZooKeeper 笔记(1) 安装部署及hello world ZooKeeper 笔记(2) 监听数据变化 ZooKeeper 笔记(3) 实战应用之[统一配置管理] ZooKe ...