差分【p3948】 数据结构
2024-09-19 10:27:02
顾z
你没有发现两个字里的blog都不一样嘛 qwq
题目描述-->p3948 数据结构
分析
其实这题完全没有分析的 qwq.
只是因为写了差分数组相关知识,所以顺便写一下题解 qwq.
对于前面几种操作,我们无法确定A和Q哪个先出现.
出题人先给你一个Q再给你个A,再给你个Q,再给你个A,\(\dots\) 这就搞得很无奈啊.
因此,对于前面的询问操作我们可以暴力去求.
而对于后面的操作,我们可以通过差分数组预处理出来一个\(sum\)数组来\(O(1)\)输出\(ans\)
如果不了解差分的话,可以来这里看看 qwq
-----------------代码----------------
#include<bits/stdc++.h>
#define IL inline
#define int long long
#define R register
using namespace std;
IL void in(int &x)
{
int f=1;x=0;char s=getchar();
while(s>'9' or s<'0'){if(s=='-')f=-1;s=getchar();}
while(s>='0' and s<='9'){x=x*10+s-'0';s=getchar();}
x*=f;
}
char op;
int b[80008],n,m,mod,mnn,mxx,Final,sum[80008];
main()
{
in(n),in(m),in(mod),in(mnn),in(mxx);
for(R int i=1,l,r,x;i<=m;i++)
{
R char op;
cin>>op;
in(l),in(r);
switch(op)
{
case 'A':in(x);b[l]+=x;b[r+1]-=x;break;
case 'Q':
{
R int ans=0,now=0;
for(R int i=1;i<=r;i++)
{
now+=b[i];
if(i>=l and (now*i)%mod>=mnn and (now*i)%mod<=mxx)ans++;
}
printf("%lld\n",ans);
break;
}
}
}
R int now=0;
for(R int i=1;i<=n;i++)
{
now+=b[i];
if((now*i)%mod>=mnn and (now*i)%mod<=mxx )sum[i]=sum[i-1]+1;
else sum[i]=sum[i-1];
}
in(Final);
for(R int l,r;Final;Final--)
{
in(l),in(r);
printf("%lld\n",sum[r]-sum[l-1]);
}
}
最新文章
- C#生成带logo的二维码
- MariaDB+Keepalived双主高可用配置MySQL-HA
- python(九)re模块
- MultiProvider
- DCMTK开源库的学习笔记4:利用ini配置文件对dcm影像进行归档
- Aliasing 走样
- 【转载】spring的普通类中如何取session和request对像
- centos php php-fpm install
- lightoj1057 - Collecting Gold (tsp问题)
- Java线程:同步
- 分布式文件系统 FastDFS 5.0.5 &; Linux CentOS 7 安装配置(单点安装)——第一篇
- CMD和seaJS
- AO之Addins开发[杂谈1] Toolbar中添加一条分割线
- angularjs 服务详解
- SmokePing介绍
- 解析Django路由层URLconf
- Servlet会话管理三(HttpSession)
- Python+Selenium笔记(十四)鼠标与键盘事件
- 机器学习:分类算法性能指标之ROC曲线
- 洛谷.3381.[模板]最小费用最大流(zkw)
热门文章
- 【Spiral Matrix】cpp
- 如何在乌班图上配置java开发环境
- Python全栈工程师(装饰器、模块)
- [ecmagent][redis学习][1初识redis] redis安装+redis快速教程+python操作redis
- iPhone:iOS界面,本地生成随机验证码
- 有向图强连通分量Tarjan算法
- YouTube高效传输策略:节省14%带宽 用户体验提升
- 大型C++项目必须注意的几个小问题
- NOIP2017赛前考试注意事项总结
- java.net.BindException: Address already in use: JVM_Bind <;null>;:8080错误