【分块】【bzoj3343】教主的魔法

快速玩转 Llama2!机器学习 PAI 最佳实践(一)—低代码 Lora 微调及部署 本实践将采用阿里云机器学习平台PAI-快速开始模块针对 Llama-2-7b-chat 进行开发。PAI-快速开始支持基于开源模型的低代码训练、布署和推理全流程,适合想要快速开箱体验预训练模型的开发者。 阅读详情

3343: 教主的魔法

Time Limit: 10 Sec   Memory Limit: 256 MB
Submit: 446   Solved: 198
[ Submit][ Status][ Discuss]

Description

教主最近学会了一种神奇的魔法,能够使人长高。于是他准备演示给XMYZ信息组每个英雄看。于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1、2、……、N。
每个人的身高一开始都是不超过1000的正整数。教主的魔法每次可以把闭区间[L, R](1≤L≤R≤N)内的英雄的身高全部加上一个整数W。(虽然L=R时并不符合区间的书写规范,但我们可以认为是单独增加第L(R)个英雄的身高)
CYZ、光哥和ZJQ等人不信教主的邪,于是他们有时候会问WD闭区间 [L, R] 内有多少英雄身高大于等于C,以验证教主的魔法是否真的有效。
WD巨懒,于是他把这个回答的任务交给了你。
 

Input

       第1行为两个整数N、Q。Q为问题数与教主的施法数总和。
       第2行有N个正整数,第i个数代表第i个英雄的身高。
       第3到第Q+2行每行有一个操作:
(1)       若第一个字母为“M”,则紧接着有三个数字L、R、W。表示对闭区间 [L, R] 内所有英雄的身高加上W。
(2)       若第一个字母为“A”,则紧接着有三个数字L、R、C。询问闭区间 [L, R] 内有多少英雄的身高大于等于C。
 

Output

       对每个“A”询问输出一行,仅含一个整数,表示闭区间 [L, R] 内身高大于等于C的英雄数。
 

Sample Input

5 3
1 2 3 4 5
A 1 5 4
M 3 5 1
A 1 5 4

Sample Output

2
3

HINT

【输入输出样例说明】

原先5个英雄身高为1、2、3、4、5,此时[1, 5]间有2个英雄的身高大于等于4。教主施法后变为1、2、4、5、6,此时[1, 5]间有3个英雄的身高大于等于4。

 

【数据范围】

对30%的数据,N≤1000,Q≤1000。

对100%的数据,N≤1000000,Q≤3000,1≤W≤1000,1≤C≤1,000,000,000。

可以在存完原数列后再存一个结构体,保存数列和序号,然后分块在结构体中乱搞。。。具体说就是在修改时对序号排序修改,查询时对权值排序修改,时间复杂度是O(q*sqrt(n)*log(sqrt(n)))。不过这种做法会有许多重复的排序。。。可能会T。。。有更优一些的做法,在每次修改后对权值排序,而不是在查找时排序,会快。

Code:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#define N 1000010
#define K 2001
using namespace std;
struct point{
	int xu,v;
}b[N];
int a[N],add[K];
int n,q,k;
inline int in(){
	int x=0; char ch=getchar();
	while (ch<'0' || ch>'9') ch=getchar();
	while (ch>='0' && ch<='9') x=x*10+ch-'0',ch=getchar();
	return x;
}
inline bool cmpxu(point x,point y){
	return x.xu<y.xu;
}
inline bool cmpv(point x,point y){
	return x.v<y.v;
}
inline int erfen(int i,int c){
	int l=(i-1)*k+1,r=i*k,m,s;
	sort(b+l,b+r+1,cmpv);
	while (l<=r){
		m=(l+r)>>1;
		if (b[m].v==c-add[i]) break;
		else if (b[m].v<c-add[i]) l=m+1;
		else r=m-1;
	}
	if (b[m].v>=c-add[i]) s=i*k-m+1;
	else s=i*k-m;
	return s;
}
int main(){
	freopen("cin.in","r",stdin);
	freopen("cin.out","w",stdout);
	n=in(),q=in(),k=sqrt(n);
	for (int i=1; i<=n; i++) a[i]=in(),b[i].v=a[i],b[i].xu=i;
	while (q--){
		char opt=getchar(); int l,r,c,ll,rr,L,R;
		while (opt<'A' || opt>'Z') opt=getchar();
		l=in(),r=in(),c=in();
		ll=(l/k)+(l%k!=0 ? 1 : 0); rr=(r/k)+(r%k!=0 ? 1 : 0);
		L=ll+(k*(ll-1)+1==l ? 0 : 1); R=rr+(r%k==0 ? 0 : -1);
		if (opt=='M'){
			if (L<=R){
				for (int i=L; i<=R; i++) add[i]+=c;
				if (ll<L){
					sort(b+(ll-1)*k+1,b+ll*k+1,cmpxu);
					for (int i=l; i<=ll*k; i++)
						a[i]+=c,b[i].v+=c;
				}
				if (rr>R){
					sort(b+(rr-1)*k+1,b+rr*k+1,cmpxu);
					for (int i=R*k+1; i<=r; i++)
						a[i]+=c,b[i].v+=c;
				}
			}
			else {
				sort(b+(ll-1)*k+1,b+rr*k+1,cmpxu);
				for (int i=l; i<=r; i++)
					a[i]+=c,b[i].v+=c;
			}
		}
		else {
			int ans=0;
			if (L<=R){
				for (int i=L; i<=R; i++) ans+=erfen(i,c);
				if (ll<L){
					for (int i=l; i<=ll*k; i++)
						if (a[i]>=c-add[ll]) ans++;
				}
				if (rr>R){
					for (int i=R*k+1; i<=r; i++)
						if (a[i]>=c-add[rr]) ans++;
				}
			}
			else {
				if (ll==rr){
					for (int i=l; i<=r; i++)
						if (a[i]>=c-add[ll]) ans++;
				}
				else {
					for (int i=l; i<=ll*k; i++)
						if (a[i]>=c-add[ll]) ans++;
					for (int i=ll*k+1; i<=r; i++)
						if (a[i]>=c-add[rr]) ans++;
				}
			}
			printf("%d\n",ans);
		}
	}
	return 0;
}


使用STM32微控制器实现光电传感器的接口和数据处理 本文将介绍如何使用STM32微控制器实现光电传感器的接口和数据处理的方案,包括硬件设计、引脚配置、数据采集、滤波和阈值判断等关键步骤,并给出相应的代码示例。本文将介绍如何使用STM32微控制器实现光电传感器的接口和数据处理的方案,包括硬件设计、引脚配置、数据采集、滤波和阈值判断等关键步骤,并给出相应的代码示例。在光电传感器的接口和数据处理的实现过程中,要关注系统的性能。在使用STM32微控制器实现光电传感器的接口和数据处理之前,需要设计一个合适的硬件平台。 阅读详情

相关推荐

嵌入式开发中SAR与ΔΣ ADC选型指南:从原理到实战应用

模数转换器是嵌入式系统连接模拟世界与数字世界的核心接口,其选型直接决定了数据采集的精度与可靠性。SAR ADC采用逐次逼近原理,如同天平称重,通过二进制搜索快速完成转换,具备高速、多通道轮询的优势,适合电机控制、通信等动态场景。ΔΣ ADC则基于过采样与噪声整形技术,以速度换取精度,通过数字滤波输出高分辨率结果,在传感器测量、音频采集等静态高精度领域表现卓越。理解这两种架构的工作原理差异,是进行嵌入式ADC选型的基础。在实际工程中,需结合信号带宽、多通道切换需求、功耗约束及PCB布局能力进行综合权衡。例如,

weixin_30140399的博客 243

【洛谷 2801】教主的魔法

算法标签:分块

forever_dreams的博客 411

模仿学习(Imitation Learning)概述

什么是模仿学习呢?简单来说,模仿学习(Imitation Learning),就是要训练机器能够复制人类的连续动作,进而达到模仿的目的。其实,Imitation Learning的实用性很高,假设今天有一个训练场景,你不知道该怎么定奖励值(reward),但是你可以收集到专家的示范数据(expert demonstration data),你就可以考虑用Imitation Learning这个方法。因此,模仿学习也被寄予很高的期待,成为下一代强人工智能的关键技术。......

qq_22749225的博客 2万+

P2801 教主的魔法 Solution

洛谷 P2801 教主的魔法

pystraf的博客 884

Aurora 8B/10B IP核介绍 —— Xilinx 技术文档Pg046

一、概述该IP核与用户接口之间支持AXI4-Stream协议,且基于ZYNQ SOC、A7、K7、V7以及UltraScale、UltraScale+系列FPGA的高速收发器(the high-speed serial transceivers)进行实现。多达 16 个连续绑定4 个连续绑定的 GTP 收发器framingstreaming以及全双工或单工加扰消扰CRC校验热插拔Aurora 8B/10B核心(图1-1)是一种可扩展的、轻量级的、用于高速串行通信的链路层协议;

qq_32147275的博客 1637

数字后端零基础入门系列 | Innovus零基础LAB学习Day7

数字后端零基础入门系列 | Innovus零基础LAB学习Day7

weixin_37584728的博客 2269

【洛谷】P2801 教主的魔法

题目地址: https://www.luogu.com.cn/problem/P2801 题目描述: 教主最近学会了一种神奇的魔法,能够使人长高。于是他准备演示给XMYZ信息组每个英雄看。于是NNN个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1,2,…,N1, 2, \ldots, N1,2,…,N。每个人的身高一开始都是不超过100010001000100010001000的正整数。教主的魔法每次可以把闭区间[L,R][L, R][L,R](1≤L≤R≤N1≤L≤R≤N1≤L≤R≤N)内的英雄

数学、算法爱好者的博客 470

企业级智能知识库问答AI助手(大模型+Python)

智能知识问答库AI助手

usa_washington的博客 1655

<C++>【入门篇】

命名空间,缺省参数,引用,重载函数,内联函数,auto

m0_65140768的博客 575

数据挖掘实战-基于决策树算法构建北京市空气质量预测模型

通过分析这些数据,我们将利用决策树算法建立预测模型。决策树算法具有直观易懂、分类效果好等优点,适合用于此类预测问题。我们将采用适当的方法对模型进行训练和优化,以提高预测精度。最终,我们将评估模型的预测效果,并探讨其在实际应用中的可行性和潜在价值。希望通过本实验,能为北京市的空气质量改善工作提供一定的支持。通过基于决策树算法构建的北京市空气质量预测模型的实验研究,我们在多方面取得了显著的进展。首先,我们成功地整合了来自气象、环保、交通等多个领域的大量数据,形成了一个全面而综合的空气质量分析框架。

m0_64336780的博客 2万+

无人机视角下基于YOLOv5/v8/v10的车辆检测系统:从算法原理到UI界面实战

随着无人机技术的普及和智慧城市的发展,无人机视角下的车辆检测在交通监控、战场侦察、灾害救援等领域展现出巨大的应用价值。然而,无人机航拍图像存在目标尺度小、视角多变、背景复杂等挑战。本文深入探讨了如何利用YOLOv5、YOLOv8、YOLOv10三个代表性目标检测算法,构建一套完整的无人机车辆检测系统。文章不仅详细解析了各版本YOLO的核心技术演进,还提供了从数据集准备、模型训练、性能评估到基于PyQt5/PySide6的图形界面开发的完整代码实现。通过本文,读者将能够掌握构建无人机实时车辆检测系统的全流程技

YOLO 172

bzoj3343 教主的魔法

分块+二分

YHaX的博客 396

一文吃透 Tools for Applying SAP Notes:从 SNOTE、TCI 到 Solution Manager 与 SAP Cloud ALM

本文系统梳理了SAP技术与运维团队应用SAP Notes的高效工具与方法,涵盖On-Premise与云环境。文章首先阐述了精研SAP Notes工具的必要性,指出其是实施错误修复、法务变更和性能改进的关键载体。随后详细介绍了SNOTE、TCI、Solution Manager、Cloud ALM和Maintenance Planner等核心工具的定位与适用场景,并通过采购异常案例展示了标准更正流程。针对复杂修复场景,文章提出了TCI的批量处理方案,并强调将Note实施纳入变更治理流程的重要性。最后总结了三种

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 348

【BZOJ3343】教主的魔法 分块

【BZOJ3343】教主的膜魔法 Description 教主最近学会了一种神奇的魔法,能够使人长高。于是他准备演示给XMYZ信息组每个英雄看。于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1、2、……、N。 每个人的身高一开始都是不超过1000的正整数。教主的魔法每次可以把闭区间[L,R](1≤L≤R≤N)内的英雄的身高全部加上一个整数W。(虽然L=R时并不...

aodanchui1057的博客 134

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

BZOJ_3343_教主的魔法_分块+二分查找

BZOJ_3343_教主的魔法_分块+二分查找 题意:教主最近学会了一种神奇的魔法,能够使人长高。于是他准备演示给XMYZ信息组每个英雄看。于是N个英雄们又一次聚集在了一起,这次他们排成了一列被编号为1、2、……、N。每个人的身高一开始都是不超过1000的正整数。教主的魔法每次可以把闭区间[L, R](1≤L≤R≤N)内的英雄的身高全部加上一个整数W。(虽然L=R时并不符合区间的书写规...

125

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

BZOJ3343: 教主的魔法 分块

BZOJ3343: 教主的魔法 分块 2016-05-28 10:27:19 题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3343 比较显然的分块题,分块后块内排序,维护整块的附加信息add 对于操...

anchoupi8353的博客 161

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

bzoj3343 教主的魔法 ( 分块 +二分)

bzoj3343 教主的魔法原题地址:http://www.lydsy.com/JudgeOnline/problem.php?id=3343题意: 由不超过1000的正整数组成的序列,标号1,2,3…… N。教主的魔法 有m个询问或操作,每次操作可以把闭区间[L, R](1≤L≤R≤N)内的数全部加上一个整数W,每次询问闭区间 [L, R] 内有多少数大于等于C。 数据范围 N≤1000

Bfk的博客 424

BZOJ 3343: 教主的魔法(分块+二分查找)

BZOJ 3343: 教主的魔法(分块+二分查找) 3343: 教主的魔法 Time Limit:10 SecMemory Limit:256 MBSubmit:1172Solved:526[Submit][Status][Discuss] 这个题目为什么不能用线段树做事因为C的值不固定,如果用线段树来做,那么每一个C值要从新建一遍线段树,时间会爆炸的 ...

weixin_30678349的博客 143

【BZOJ 3343】教主的魔法(分块)

题目描述 题目传送门 思路 明显是一道分块题 查询时,对于一个完整的块,我们排好序,二分查找就行了 对于不完整的块,直接暴力找。 修改时,对于一个完整的块,打上add标记,二分找 对于不完整的块,暴力修改,再排序整个块就好了。 然后就完事了 代码 #include <bits/stdc++.h> using namespace std; const int M = 1010100; ...

t14 的博客 178

BZOJ 3343 教主的魔法 分块

mdzz....我的-Wall怕不是被吃了。。。快读里面==写成了=。。。。艹。。。调了一中午、、、QWQ我的时间啊。。。 分块:块内排序加tag(就是偏移量),来二分比所求大的位置;散块暴力修改。。。 #include<cstdio> #include<iostream> #include<algorithm> #include&l...

159

【分块】bzoj3343: 教主的魔法

3343: 教主的魔法 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 631  Solved: 272[Submit][Status][Discuss] Description 教主最近学会了一种神奇的魔法,能够使人长高。于是他准备演示给XMYZ信息组每个英雄看。于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1、2、……、

puck_just_me的blog 502

20220105[分块][BZOJ3343]教主的魔法

题目描述 教主最近学会了一种神奇的魔法,能够使人长高。于是他准备演示给XMYZ信息组每个英雄看。于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1、2、……、N。 每个人的身高一开始都是不超过1000的正整数。教主的魔法每次可以把闭区间[L, R](1≤L≤R≤N)内的英雄的身高全部加上一个整数W。(虽然L=R时并不符合区间的书写规范,但我们可以认为是单独增加第L(R)个英雄的身高) CYZ、光哥和ZJQ等人不信教主的邪,于是他们有时候会问WD闭区间 [L, R] 内有多少英雄身高大于等于C,

qq_16016913的博客 154

bzoj 3343: 教主的魔法 分块+二分

Description 教主最近学会了一种神奇的魔法,能够使人长高。于是他准备演示给XMYZ信息组每个英雄看。于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1、2、……、N。 每个人的身高一开始都是不超过1000的正整数。教主的魔法每次可以把闭区间[L, R](1≤L≤R≤N)内的英雄的身高全部加上一个整数W。(虽然L=R时并不符合区间的书写规范,但我们可以认为是单

beginend 426

[bzoj3343]教主的魔法 分块

分块大暴力

Unlimited Code Works 398

bzoj 3343 教主的魔法 分块

修改直接对整块打标记,两边暴力。 查询需要保证每个整块有序,所以在修改时排序就好啦 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #define N 10000...

aida9573的博客 131
上一篇: 【水题】【NOIP】【cogs1054】分数线划定
下一篇: 【DP】【HNOI2004】打鼹鼠
morestep
博客等级 码龄12年 20粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值