2016多校联赛7H (hdu5828) Rikka with Sequence

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx 科技中介服务机构想要提升服务效率,需要哪些数智工具支持? 立即下载


Rikka with Sequence

Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 631    Accepted Submission(s): 183


Problem Description
As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them:

Yuta has an array A with n numbers. Then he makes m operations on it. 

There are three type of operations:

1 l r x : For each i in [l,r], change A[i] to A[i]+x
2 l r : For each i in [l,r], change A[i] to 
3 l r : Yuta wants Rikka to sum up A[i] for all i in [l,r]

It is too difficult for Rikka. Can you help her?
 

Input
The first line contains a number t(1<=t<=100), the number of the testcases. And there are no more than 5 testcases with n>1000.

For each testcase, the first line contains two numbers n,m(1<=n,m<=100000). The second line contains n numbers A[1]~A[n]. Then m lines follow, each line describe an operation.

It is guaranteed that 1<=A[i],x<=100000.
 

Output
For each operation of type 3, print a lines contains one number -- the answer of the query.
 

Sample Input
  
1 5 5 1 2 3 4 5 1 3 5 2 2 1 4 3 2 4 2 3 5 3 1 5
 

Sample Output
  
5 6
 

Author
学军中学
 

Source
 

Recommend
wange2014   |   We have carefully selected several similar problems for you:   5831  5830  5829  5827  5826 
题意:给你n个数,序列为1~n,三种操作,1是l~r之间的数全部加x,2是l~r之间的数全部开方,3求l~r之间的数的和。

思路:很明显这道题要用线段树,关键是怎么优化,操作1的优化估计大家都会,问题是操作2,第一种情况,一个数连续开方不超10次就会变成1,而1开方也还是1,那么我们只要判断区间里的数全部都是1就不用继续更新下去了,第二种情况,区间里的数全部相等,也就是区间的最大值等于最小值,那么开方之后的结果很容易就得出来了。下面给代码。

#include <map>  
#include <set>  
#include <cmath>  
#include <queue>  
#include <vector>  
#include <cstdio>  
#include <cstring>  
#include <iostream>  
#include <algorithm>  
using namespace std;
#define maxn 100005
#define ll now<<1
#define rr now<<1|1
typedef long long LL;
LL  sum[maxn << 2], minnum[maxn << 2], maxnum[maxn << 2], value[maxn << 2], addnum;
void build(int l, int r, int now){
	if (l == r){
		scanf("%lld", &sum[now]);
		maxnum[now] = minnum[now] = sum[now];
		return;
	}
	int mid = (l + r) >> 1;
	build(l, mid, ll);
	build(mid + 1, r, rr);
	sum[now] = sum[ll] + sum[rr];
	minnum[now] = min(minnum[ll], minnum[rr]);
	maxnum[now] = max(maxnum[ll], maxnum[rr]);
	value[now] = 0;
}
void updateadd(int l1, int r1, int l2, int r2, int now){
	if (l2 <= l1&&r2 >= r1){
		sum[now] += addnum*(r1 - l1 + 1);
		maxnum[now] += addnum;
		minnum[now] += addnum;
		value[now] += addnum;
		return;
	}
	int mid = (l1 + r1) >> 1;
	if (value[now]){
		sum[ll] += (mid - l1 + 1)*value[now];
		sum[rr] += (r1 - mid)*value[now];
		maxnum[ll] += value[now];
		maxnum[rr] += value[now];
		minnum[ll] += value[now];
		minnum[rr] += value[now];
		value[ll] += value[now];
		value[rr] += value[now];
		value[now] = 0;
	}
	if (l2 <= mid)
		updateadd(l1, mid, l2, r2, ll);
	if (r2 > mid)
		updateadd(mid + 1, r1, l2, r2, rr);
	sum[now] = sum[ll] + sum[rr];
	maxnum[now] = max(maxnum[ll], maxnum[rr]);
	minnum[now] = min(minnum[ll], minnum[rr]);
}
void updatesqrt(int l1, int r1, int l2, int r2, int now){
	if (maxnum[now] == 1){
		return;
	}
	if (l2 <= l1&&r2 >= r1&&minnum[now] == maxnum[now]){
		LL temp = sqrt(maxnum[now]);
		sum[now] = (r1 - l1 + 1)*temp;
		value[now] -= maxnum[now] - temp;
		maxnum[now] = temp;
		minnum[now] = temp;
		return;
	}
	int mid = (l1 + r1) >> 1;
	if (value[now]){
		sum[ll] += (mid - l1 + 1)*value[now];
		sum[rr] += (r1 - mid)*value[now];
		maxnum[ll] += value[now];
		maxnum[rr] += value[now];
		minnum[ll] += value[now];
		minnum[rr] += value[now];
		value[ll] += value[now];
		value[rr] += value[now];
		value[now] = 0;
	}
	if (l2 <= mid)
		updatesqrt(l1, mid, l2, r2, ll);
	if (r2 > mid)
		updatesqrt(mid + 1, r1, l2, r2, rr);
	sum[now] = sum[ll] + sum[rr];
	maxnum[now] = max(maxnum[ll], maxnum[rr]);
	minnum[now] = min(minnum[ll], minnum[rr]);
}
LL query(int l1, int r1, int l2, int r2, int now){
	if (l2 <= l1&&r2 >= r1){
		return sum[now];
	}
	int mid = (l1 + r1) >> 1;
	if (value[now]){
		sum[ll] += (mid - l1 + 1)*value[now];
		sum[rr] += (r1 - mid)*value[now];
		maxnum[ll] += value[now];
		maxnum[rr] += value[now];
		minnum[ll] += value[now];
		minnum[rr] += value[now];
		value[ll] += value[now];
		value[rr] += value[now];
		value[now] = 0;
	}
	LL lsum = 0, rsum = 0;
	if (l2 <= mid)
		lsum = query(l1, mid, l2, r2, ll);
	if (r2 > mid)
		rsum = query(mid + 1, r1, l2, r2, rr);
	return lsum + rsum;
}
int main(){
	int t;
	scanf("%d", &t);
	while (t--){
		int n, m;
		scanf("%d%d", &n, &m);
		build(1, n, 1);
		while (m--){
			int cmd, l, r;
			scanf("%d%d%d", &cmd, &l, &r);
			if (cmd == 1){
				scanf("%lld", &addnum);
				updateadd(1, n, l, r, 1);
			}
			else if (cmd == 2){
				updatesqrt(1, n, l, r, 1);
			}
			else{
				printf("%lld\n", query(1, n, l, r, 1));
			}
		}
	}
}


usb 扩容盘检测修复工具源码,编译产物 立即下载

相关推荐

融合UWB和IMU割草机定位EKF研究(Matlab代码实现)

内容概要:本文主要介绍了一个名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该资源聚焦于电力电子领域中的LLC谐振变换器建模与仿真,涵盖开环、闭环控制、软启动设计及参数优化等核心内容。文档不仅提供了LLC变换器的详细建模方法与仿真案例,还系统梳理了其在高效电源转换系统中的应用,包括隔离型全桥拓扑结构的设计与性能分析。此外,资源汇总了大量Matlab/Simulink仿真模型及相关科研方向,涉及新能源并网、储能控制、电机驱动等多个前沿领域,全面展示LLC谐振变换器在现代电力系统中的关键技术实现路径。同时,文档附带多种学习资料获取途径,如网盘链接和公众号资源,便于研究人员深入实践与拓展研究。; 适合人群:具备扎实的电力电子、自动控制理论基础,从事新能源发电、开关电源设计、电力系统仿真等相关领域的研究生、工程师及科研人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理、建模方法与控制策略;②开展电力电子变换器的仿真验证与参数优化设计;③支撑科研项目、学位论文或工程项目的系统仿真与方案验证; 阅读建议:建议结合所提供的仿真模型与参考文献,使用Plecs或Simulink软件进行动手实践,重点掌握LLC谐振变换器的建模流程、闭环控制设计、软启动机制及参数调试技巧,以全面提升在实际工程中的应用与创新能力。

【HDU 6087】—Rikka with Sequence(可持久化平衡树)

传送门 可持久化平衡树 第三个操作只需要记录一个最开始版本的根就可以了 第二个操作实际上是把[l−k,l−1][l-k,l-1][l−k,l−1]复制多次 可以倍增复制 由于卡空间,定期重构平衡树 我写的非旋treaptreaptreap #include<bits/stdc++.h> using namespace std; const int RLEN=1<<20|1;...

Stargazer的博客 461

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)内容概要:本文主要介绍了基于Plecs的全桥LLC谐振变换器仿真模型,涵盖变频控制下的多相交错LLC谐振变换器闭环仿真、V2G电动汽车ACDC整流与双向CLLC谐振变换器充放电仿真、LLC谐振变换器的开环与闭环软启动设计,以及储能系统中双向Buck-Boost变换器结合模型预测电流控制和电压下垂控制的仿真研究。同时,文档列举了多种电力电子系统与控制策略的Simulink/Plecs仿真案例,涉及三相交错并联Buck变换器、三电平Buck直流变换器、单相Boost PFC电路等,展示了丰富的电力变换器建模与控制技术。此外,还包括参数设计报告、计算书及相关参考文献,适用于从事电力电子、新能源发电、电动汽车充放电系统等领域的研究人员和技术开发人员。; 适合人群:具备电力电子、自动控制理论基础,从事新能源、电动汽车、电力系统等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:① 学习和掌握LLC谐振变换器及其他典型电力电子变换器的工作原理与建模方法;② 实现闭环控制策略如变频控制、软启动、模型预测控制、下垂控制等的仿真验证;③ 支持科研项目、毕业设计或工程开发中的系统仿真与优化设计。; 阅读建议:建议结合文中提供的仿真模型、设计报告与参考文献,逐步搭建并调试相应系统,重点关注控制策略的实现细节与参数整定过程,以深入理解系统动态响应特性与控制性能。

ACM2016多校联赛1B hdu5724 Chess(博弈)

感谢围巾师兄,不然完全想不到。 Chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1006    Accepted Submission(s): 439 Problem Description

overload1997 1万+

【Arduino 101】五分钟搞懂PID控制算法

【Arduino 101】五分钟搞懂PID控制算法物料清单尺寸接线 文章目录物料清单尺寸接线 物料清单 Arduino Uno x 1 超声波模块(HC-SR04)x 1 舵机(Tower Pro MG996R)x 1 舵机供电: 5V 稳压管(LM7805) x 1 , 滤波电容 (0.33uF, 0.1uF) x 2, 9V 电池 x 1 滑轨:泡沫板 支架:乐高 滚动物体:胶带(Up试过网球,但是测距模块的表现不理想) 尺寸 接线 ...

机器人工坊 1万+

芯片低功耗设计的两种常用EDA流程

如题。

EricWZY2008的专栏 5557

hdu 6035 Colorful Tree

Colorful Tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 182    Accepted Submission(s): 46 Problem Description There is a tr

overload1997 1983

MIPI信号的分析--结合示波器实际测试波形

如果排查的思路对你有帮助,请记住 消雨匆匆 or 大吊工。码字和排查很累,仅此而已 ,硬件不是抄电路,拿烙铁,懂点软件,细致分析,找问题和破案搜集线索是一样的。 部分内容来自于此博客的大神总结: http://www.elecfans.com/news/wangluo/20170323499614.html http://www.elecfans.com/yuanqijian/jieko...

消雨匆匆 4万+

hdu 6166 Senior Pan 最短路

Senior Pan Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 179    Accepted Submission(s): 45 Problem Description Senior Pan fail

overload1997 1778

AI Olympics:面向真实决策的不完全信息博弈评测框架

在人工智能落地实践中,传统基准测试(如MMLU、GSM8K)擅长评估知识调用与静态推理能力,却难以衡量模型在动态、模糊、高代价的真实场景中的策略决策水平。AI Olympics正是为弥补这一断层而生——它以扑克、狼人杀等社会性博弈为载体,系统考察模型在不完全信息下的对手建模、欺骗检测、多步序贯推理与代价敏感执行等核心能力。其技术价值在于将‘黑箱决策’转化为可追踪、可归因、可压力测试的动态思维图谱(DTG),支撑金融风控、智能客服、交通调度等强交互业务场景的能力诊断与持续优化。

weixin_30983965的博客 298

WorkBuddy入门到 多Agent团队协作完全指南(附实操代码与配图)

WorkBuddy的Agent Teams功能支持多智能体协作,通过创建AI团队提升复杂任务处理效率。该功能支持自然语言创建团队、任务分配与依赖管理、成员间消息通信(包括直接消息和广播),并提供任务审批机制。典型应用场景包括软件开发、内容创作等协作任务。环境要求WorkBuddy 2026年3月及以上版本,支持Windows和macOS系统。用户可快速创建包含不同角色的AI团队,通过共享任务列表和信箱系统实现协作。高级功能包括委派模式、任务依赖管理和成员自主认领等,适合各类协作场景。

三棱球的专栏 6466

2016多校联赛6H (hdu5800) To My Girlfriend

To My Girlfriend Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 346    Accepted Submission(s): 126 Problem Description Dear Guo

overload1997 1324

基于 Simulink 的三相四线制整流器在三相不平衡负载下的中点电位平衡控制实战教程。

本文介绍了三相四线制整流器在不平衡负载下的中点电位平衡控制方法。首先分析了中点电位漂移的物理机理和控制策略(零序电压注入)。接着详细讲解了Simulink建模步骤:搭建三相四线制主电路、设计平衡控制算法、实现PWM调制。通过对比有无平衡控制的仿真结果,验证了控制方法的有效性。最后提供了工程建议:零序注入需限幅、考虑中性线寄生电感影响、采用稳健的PI参数。该方案能有效抑制中点电位波动,保障三电平系统在不平衡工况下的稳定运行。

MHD0815的博客 60

hdu 6086 Rikka with String ac自动机+dp

Rikka with String Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 210    Accepted Submission(s): 58 Problem Description As we know,

overload1997 1218

【DRAM存储器五十一】LPDDR5介绍--DFE与Pre-Emphasis

简述LPDDR5的DFE和预加重应用设置

highman110的博客 707

【异常】Error loading ASGI app. Could not import module ‘main‘

出现或。

奶爸的编程之路,也就一周冷个三天 1855

hdu 6058 Kanade's sum

Kanade's sum Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 516    Accepted Submission(s): 182 Problem Description Give you an arr

overload1997 1115

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

2016多校联赛4E (hdu5768) Lucky7

Lucky7 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 318    Accepted Submission(s): 127 Problem Description When ?? was born, sev

overload1997 1058

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

hdu 6171 Admiral 双向bfs+hash

Admiral Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 153428/153428 K (Java/Others) Total Submission(s): 206    Accepted Submission(s): 54 Problem Description Suppose that you ar

overload1997 978

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

2016多校联赛4L (hdu5775) Bubble Sort

Bubble Sort Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 224    Accepted Submission(s): 147 Problem Description P is a permutati

overload1997 888

hdu 6070 Dirt Ratio

Dirt Ratio Time Limit: 18000/9000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) Total Submission(s): 384    Accepted Submission(s): 120 Special Judge Problem Description I

overload1997 827

hdu 6102 GCDispower 树状数组+容斥

GCDispower Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 175    Accepted Submission(s): 87 Problem Description There is a myster

overload1997 674

ZZULIOJ 多校训练三

链接http://acm.zzuli.edu.cn/zzuliacm/contestrank.php?cid=1159 今天没事陪着群里的大佬们做题。 最后一题的数据不按题目输入,害我又RE又WA,比赛玩换成cin输入1A了。。 A题:有毒。。重点是这句话(重光:233,窝一个t就出来了。)  我还CE,输出2,3...错了几波。。答案是输出1就可以了。这水的。。 B题(水题):用

overload1997 620

2016多校联赛6B (hdu5794) A Simple Chess

A Simple Chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1057    Accepted Submission(s): 280 Problem Description There is a n

overload1997 618

ACM2016多校联赛1A Abandoned country

题目链接//http://acm.hdu.edu.cn/contests/contest_showproblem.php?cid=704&pid=1001 Abandoned country Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submiss

overload1997 603

hdu 6097 Mindis (反演点)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6097 题目大意:给你圆内两个点P、Q,求圆上一点D,使得 |QD|+|PD|最短 在此之前我们先了解一下反演点的知识,参照百度百科: 一般指二维反演中的点。 二维上反演以一个特定的反演圆为基础:圆心O为反演中心,圆半径为常数k,把点P反演为点P'就是使得OP×OP'=r^2.

overload1997 591
上一篇: hdu4433 locker
下一篇: 2016多校联赛7C (hdu5823) color II
overload1997
博客等级 码龄11年 328粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值