首页 > 其他分享 >ls

ls

时间:2023-12-05 19:34:26浏览次数:18  
标签:hz zl hl int qz ls zz

#include<bits/stdc++.h>
#define int long long
#define f t[p]
#define ls p<<1
#define rs p<<1|1
using namespace std;
int n,m,a[100001];
struct aa
{
	int l,r,val,qz,qr,zz,zl,zr,hz,hl;
}t[400004];
aa hebing(aa a,aa b)
{
	aa p;
	if(a.l==0&&a.r==0&&b.l==0&&b.r==0) return aa{0,0,0,0,0,0,0,0,0,0};
	if(a.l==0&&a.r==0) return b;
	if(b.l==0&&b.r==0) return a;
	p.l=a.l,p.r=b.r;
	p.val=a.val+b.val;
	if(a.val+b.qz>a.qz) p.qz=a.val+b.qz,p.qr=b.qr;
	else p.qz=a.qz,p.qr=a.qr;
	if(b.val+a.hz>=b.hz) p.hz=b.val+a.hz,p.hl=a.hl;
	else p.hz=b.hz,p.hl=b.hl;
	int qjh=a.hz+b.qz;/*前加后*/
	if(a.zz>=qjh&&a.zz>=b.zz) p.zz=a.zz,p.zl=a.zl,p.zr=a.zr;
	else if(b.zz>qjh) p.zz=b.zz,p.zl=b.zl,p.zr=b.zr;
	else p.zz=qjh,p.zl=a.hl,p.zr=b.qr;
	return p;
}
void build(int p,int l,int r)
{
	f.l=l,f.r=r;
	if(l==r)
	{
		f.zz=f.val=f.qz=f.hz=a[l];
		f.qr=f.zl=f.zr=f.hl=l;
		return;
	}
	int mid=(l+r)>>1;
	build(ls,l,mid),build(rs,mid+1,r);
	f=hebing(t[ls],t[rs]);
}
aa ask(int p,int l,int r)
{
	aa tmp=aa{0,0,0,0,0,0,0,0,0,0};
	if(f.l>r||f.r<l) return tmp;
	if(f.l>=l&&f.r<=r) tmp=f;
	else tmp=hebing(ask(ls,l,r),ask(rs,l,r));
	return tmp;
}
signed main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i];
	build(1,1,n);
	for(int i=1;i<=m;i++)
	{
		int x,y;
		cin>>x>>y;
		aa ans=ask(1,x,y);
		cout<<ans.zl<<" "<<ans.zr<<" "<<ans.zz<<"\n";
	}
}

标签:hz,zl,hl,int,qz,ls,zz
From: https://www.cnblogs.com/Charlieljk/p/17877966.html

相关文章

  • vue中引用utils中的方法
    utils中的目录解构如下(utils在src目录下),以深拷贝为例:deepClone文件的代码如下:functiondeepClone(substance){if(typeofsubstance!=='object'||substance==null){returnsubstance;}constresult=Array.isArray(substance)?[]:{};for(constkey......
  • RTSP流媒体视频平台LiteNVR播放HLS流,出现中断且无法自动恢复的原因排查
    有用户反映,在使用安防视频LiteNVR平台时,取平台分发的hls地址在移动端播放一段时间就会停止,且无法自动恢复播放。今天我们来介绍下该问题的排查与解决方法。 LiteNVR是基于RTSP/Onvif协议推出的安防视频监控管理平台,它可实现设备接入、实时直播、录像、检索与回放、存储、视频......
  • 如何监听localStorage中的值的变化?
    场景:layout页顶部navar组件中展示用户名称,在修改用户名并关闭弹框后,navar组件中的name不能及时更新,需要手动刷新。如下: 1、在utils中写个方法watchStroage.js。对localStorage.setItem进行重新改造 2、在main.js中引入这个方法并使用importwatchStroagefrom'./utils/wat......
  • 基于泰凌微TLSR8355的无线灯光智能控制系统解决方案调试总结
    前记 随着新技术的不断发展,在灯控市场。使用无线和传感器技术让灯的利用变得更加环保和智能是一个相对时尚的选择。最近跟几个客户做了一些此类的产品。发掘了一些有趣的功能和应用。这里做一个梳理。特色梳理 原理:这类产品一般是使用无线来控制灯光的状态和开关......
  • SQLServer解决deadlock问题的一个场景
    SQLServer解决deadlock问题的一个场景背景公司产品出现过很多次deadlock跟研发讨论了很久,都没有具体的解决思路但是这边知道了一个SQLServer数据库上面计划100%出现问题的场景然后想着跟之前微软case一起处理一下看能否解决这个问题.整体思路1.修改默认的隔离级别......
  • XLSX.utils 下的 Api
    工作表aoa_to_sheet将JS数据数组转换为工作表json_to_sheet将JS对象数组转换为工作表table_to_sheet将DOM表元素转换为工作表sheet_add_aoa将JS数据数组添加到现有工作表中sheet_add_json将JS对象数组添加到现有工作表中sheet_add_dom将DOM表元素中的数......
  • Docker部署lsky-pro
    一、简介LskyPro是一个用于在线上传、管理图片的图床程序,中文名:兰空图床,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。二、搭建lsky-pro绿联DX4600为例,首先我们打开Docker管理器,进入镜像管理,然后在镜像仓库中搜索halcyonazure/lsky-pro-docker​,选择latest......
  • java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1
    java.lang.IllegalStateException:ExpectedBEGIN_OBJECTbutwasSTRINGatline1column2path$packagecom.example.core.mydemo.scooterOrderSms;importcom.alibaba.fastjson.JSON;importcom.example.core.mydemo.json2.GsonUtils;importcom.google.gson.Gso......
  • 基于泰凌微的TLSR8355芯片的2.4G无线私有协议PCBA设计调试总结
    一前记经常做物联网的类的产品,TLSR8355凭借着它的射频距离远,功能强大等优点成为很多客户的首选。TLSR8355系列专用于2.4GHz射频系统芯片解决方案,如零售/物流、专用网络、Beacon应用程序、无线鼠标、无线USB加密狗等。它集成了2.4GHz射频系统片上应用开发所需的全系列片上外围......
  • SQLServer 性能报表的学习与使用
    SQLServer性能报表的学习与使用背景前面连续学习了SQLServer如何优化等事宜.但是一开始总是么有找到对应的问题解决思路周天时想到了SQLSERVER的MDW工具但是并没有找到一个合适的处理方式和方法.今天突然发现可以使用部分核心报表功能进行问题定位.所以想着总结一下,......