jzoj3236-矮人排队【权值线段树】

正题

题目链接:https://jzoj.net/senior/#main/show/3236


题目大意

一个序列两个操作

  • 1XY:1\ X\ Y:1 X Y:交换XXXYYY两个数
  • 2AB:2\ A\ B:2 A B:询问A∼BA\sim BAB这些数再序列中是否是连续的一段区间(不一定按顺序)

解题思路

先不考虑交换,对于询问我们发现它询问的区间不固定所以很难用线段树来做。所以我们可以用域值iii维护iii再目前序列的哪个位置。然后维护区间最大值和最小值,然后若询问B−AB-ABA等于A∼BA\sim BAB这个区间的maxn−minnmaxn-minnmaxnminn那么这些是一个连续区间。

然后交换我们定义segiseg_isegi表示在iii这个位置的数,然后就直接根据这个修改线段树然后交换。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=201000;
int n,m,id[N],seg[N],rea,rei;
struct Tree_node{int l,r,mins,maxs;
};
struct Seg_Tree{Tree_node t[N<<2];void Updata(int x,int ls,int rs){t[x].mins=min(t[ls].mins,t[rs].mins);t[x].maxs=max(t[ls].maxs,t[rs].maxs);return;}void Build(int x,int l,int r){t[x].l=l;t[x].r=r;if(l==r){t[x].mins=t[x].maxs=id[l];return;}int mid=(l+r)/2;Build(x*2,l,mid);Build(x*2+1,mid+1,r);Updata(x,x*2,x*2+1);}void Ask(int x,int l,int r){if(t[x].l==l&&t[x].r==r){Updata(0,0,x);return;}if(r<=t[x*2].r) Ask(x*2,l,r);else if(l>=t[x*2+1].l) Ask(x*2+1,l,r);else Ask(x*2,l,t[x*2].r),Ask(x*2+1,t[x*2+1].l,r);}void Change(int x,int pos,int z){if(t[x].l==t[x].r){t[x].mins=t[x].maxs=z;return;}if(pos<=t[x*2].r) Change(x*2,pos,z);else Change(x*2+1,pos,z);Updata(x,x*2,x*2+1);}
}Tree;
void Query(int l,int r)
{Tree.t[0].mins=n+1;Tree.t[0].maxs=0;Tree.Ask(1,l,r);rei=Tree.t[0].mins;rea=Tree.t[0].maxs;
}
void Swap(int x,int y)
{Query(x,x);int a1=rei;Query(y,y);int a2=rei;Tree.Change(1,x,a2);Tree.Change(1,y,a1);
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){int x;scanf("%d",&x);id[x]=i;seg[i]=x;}Tree.Build(1,1,n);while(m--){int op,x,y;scanf("%d%d%d",&op,&x,&y);if(op==1){Swap(seg[x],seg[y]);swap(seg[x],seg[y]);}else{Query(x,y);if(rea-rei==y-x) printf("YES\n");else printf("NO\n");}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nacos(一)之简介

转载自 什么是 Nacos Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现…

开源纯C#工控网关+组态软件(八)表达式编译器

一、 引子监控画面的主要功能之一就是跟踪下位机变量变化&#xff0c;并将这些变化展现为动画。大部分时候&#xff0c;界面上一个图元组件的某个状态&#xff0c;与单一变量Tag绑定&#xff0c;比如电机的运行态&#xff0c;绑定一个MotorRunning信号&#xff1b;但有些时候…

jzoj3237-间谍派遣【最小生成树,并查集】

正题 题目大意 一张图&#xff0c;第iii个点参加任务需要mkimk_imki​元&#xff0c;连接一条边需要一定费用&#xff0c;要求每个联通图都有参加任务的点&#xff0c;求最小费用。 解题思路 其实就是求若干个最小生成树然后这个最小生成树的权值就是这个棵树的所有边权加上最…

g4e基础篇#6 了解Git历史记录

Git的版本历史记录采用了与传统集中式版本管理系统完全不同的方式进行组织&#xff0c;在刚开始使用Git的时候我们往往会不知所措&#xff0c;比如看到这样的历史记录。看到这个七拐八拐的图形&#xff0c;你可能完全不知道它代表了什么。其实这正是Git的特别之处&#xff0c;G…

Nacos(二)之概念

转载自 Nacos 概念 NOTE: Nacos 引入了一些基本的概念&#xff0c;系统性的了解一下这些概念可以帮助您更好的理解和正确的使用 Nacos 产品。 地域 物理的数据中心&#xff0c;资源创建成功后不能更换。 可用区 同一地域内&#xff0c;电力和网络互相独立的物理区域。同一可…

bzoj3482,jzoj3238-超时空旅行hiperprostor【最短路,凸包,斜率优化】

正题 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id3482 题目大意 一张有向图有正整数边权也有xxx边权。其中xxx可以取任何值(但是要注意所有的xxx边必须长度相等)&#xff0c;每次询问求SSS到TTT的可能最短路长度个数和它们的和。 解题思路 分层图&#xff…

Ray框架QA

Orleans与Akka对比&#xff0c;为什么选用Orleans&#xff1f;答: Akka对参与开发的人员要求更高一些&#xff0c;普遍是专家级别&#xff0c;Orleans框架进一步抽象了一层&#xff0c;结合C#语言特性&#xff0c;能普遍降低开发难度。下面是知乎网友的答案&#xff0c;可以参考…

Nacos(三)之架构

转载自 Nacos 架构 基本架构及概念 服务 (Service) 服务是指一个或一组软件功能&#xff08;例如特定信息的检索或一组操作的执行&#xff09;&#xff0c;其目的是不同的客户端可以为不同的目的重用&#xff08;例如通过跨进程的网络调用&#xff09;。Nacos 支持主流的服务…

欢乐纪中某A组赛【2019.7.11】

前言 话说今天好像放做题导致BBB组贼难AAA组还好。 成绩 JJJ表示初中&#xff0c;HHH表示高中后面加的是几年级 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC101010(J−2)WYC(J-2)WYC(J−2)WYC250250250100100100100100100505050282828(J−2)ZYC(J-2)ZYC(J−2)ZYC…

ASP.NET Core Razor页面禁用防伪令牌验证

这篇短文中&#xff0c;我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证。Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架&#xff0c;用于构建动态的、数据驱动的网站&#xff1b;支持跨平台开发&#xff0c;可以部署到Windows&#xff0c;Unix和Mac操作系…

Nacos(四)之安装

转载自 Nacos 快速开始 这个快速开始手册是帮忙您快速在您的电脑上&#xff0c;下载、安装并使用 Nacos。 0.版本选择 您可以在Nacos的release notes及博客中找到每个版本支持的功能的介绍&#xff0c;当前推荐的稳定版本为1.4.1。 1.预备环境准备 Nacos 依赖 Java 环境来…

jzoj1166-树中点对距离【点分治】

正题 题目大意 求一棵树上有多少条路径长度≤len\leq len≤len 解题思路 首先普通点分治。扫描的时候将每个点保存为一个二元组(dis,gra)(dis,gra)(dis,gra)分别表示离(分治到的)根的距离&#xff0c;属于根的那颗子树。 然后按照disdisdis排序&#xff0c;两个指针L,RL,RL,…

ASP.NETCore的Kestrel服务器

什么是Kestrel服务器Kestrel是开源的&#xff08;GitHub提供的源代码&#xff09;&#xff0c;事件驱动的异步I / O服务器&#xff0c;用于在任何平台上托管ASP.NET应用程序。这是一个监听服务器和一个命令行界面。您将侦听服务器安装在Windows或Linux服务器上&#xff0c;并在…

Nacos(五)之Spring集成

转载自 Nacos Spring 快速开始 本文主要面向 Spring 的使用者&#xff0c;通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务发现。 关于 Nacos Spring 的详细文档请参看&#xff1a;nacos-spring-project。 通过 Nacos server 和 Nacos Spring 配置管…

jzoj3360-[NOI2013模拟]苹果树【树上莫队,LCA】

正题 题目大意 一棵树上每个节点有不同的颜色&#xff0c;然后每次询问(x,y,a,b)(x,y,a,b)(x,y,a,b)表示将颜色aaa看为颜色bbb的情况下询问xxx到yyy有多少不种的颜色。 解题思路 数颜色&#xff0c;显然树上莫队。我们维护一个欧拉序dfndfndfn(进去时记录一次出来时记录一次)…

Polly组件对微服务场景的价值

Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员!App vNext:https://github.com/App-vNextGitHub:https://github.com/App-vNext/PollyNanoFabric是一个开源的微服务架构,也是善友大哥推荐的:https://github.com/geffzhang/NanoFabric对于NanoFab…

Nacos(六)之Spring Boot集成

转载自 Nacos Spring Boot 快速开始 本文主要面向 Spring Boot 的使用者&#xff0c;通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务发现。 关于 Nacos Spring Boot 的详细文档请参看&#xff1a;nacos-spring-boot-project。 通过 Nacos Server 和…

P4556,jzoj3397-[GDOI2014模拟]雨天的尾巴【树链剖分,线段树】

正题 题目链接:https://www.luogu.org/problemnew/show/P4556 题目大意 nnn个点的一棵树&#xff0c;给出mmm个操作(x,y,z)(x,y,z)(x,y,z)表示将xxx到yyy的路径上的所有点给与一个zzz类型的食量。 最后对于每个点输出最多的粮食类型。 解题思路 先对这棵树进行树剖&#xff…

Nacos(七)之Spring Cloud集成

转载自 Nacos Spring Cloud 快速开始 本文主要面向 Spring Cloud 的使用者&#xff0c;通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务注册发现。 关于 Nacos Spring Cloud 的详细文档请参看&#xff1a;Nacos Config 和 Nacos Discovery。 通过 Nac…

.NET Core 2.1中改进的堆栈信息

. NET Core 2.1 现在具有可读的异步堆栈信息&#xff01;使得异步、迭代器和字典 ( key not found ) 中的堆栈更容易追踪&#xff01;这个大胆的主张意味着什么&#xff1f;要知道&#xff0c;为了确定调用 异步 和 迭代器方法的实际重载&#xff0c;&#xff08;这在以前&…