B. Lynyrd Skynyrd(倍增 + 区间最小值)

B. Lynyrd Skynyrd(segment tree + redouble)

给定一个长度为nnn的排列ppp,一个长度为mmm的数组aaa,有mmm次询问,每次询问给定l,rl, rl,r,问在数组aaa中是否存在一个子序列构成的串是ppp的循环位移串,

例如:pi,pi+1,…,pn,p1,p2,…,pi−1p_i, p_{i + 1}, \dots, p_{n}, p_1, p_2, \dots, p_{i - 1}pi,pi+1,,pn,p1,p2,,pi1就是排列ppp的一个循环位移串。要求输出 mmm个字符,第iii个字符为111,表示第iii个询问存在循环位移串。

考虑对每个点预处理出,如果从这个点开始要构成一个循环位移串,最右边需要到哪,这里可以用倍增处理,

从第iii个点跳2j2 ^ j2j次方能到哪,然后对其求一下跳n−1n - 1n1步能到的位置,对每次询问,

我们只要知道[l,r][l, r][l,r]区间内是否有一个数≤r\leq rr即可,可以用线段树维护区间最小值实现,所以整体复杂度O(nlog⁡n)O(n \log n)O(nlogn)

#include <bits/stdc++.h>
#define mid (l + r >> 1)
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define ls rt << 1
#define rs rt << 1 | 1using namespace std;const int N = 2e5 + 10;int p[N], pos[N], a[N], last[N], r[N][20], minn[N << 2], n, m, q;void update(int rt, int l, int r, int x, int v) {if (l == r) {minn[rt] = v;return ;}if (x <= mid) {update(lson, x, v);}if (x > mid) {update(rson, x, v);}minn[rt] = min(minn[ls], minn[rs]);
}int query(int rt, int l, int r, int L, int R) {if (l >= L && r <= R) {return minn[rt];}int ans = 0x3f3f3f3f;if (L <= mid) {ans = min(ans, query(lson, L, R));}if (R > mid) {ans = min(ans, query(rson, L, R));}return ans;
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);scanf("%d %d %d", &n, &m, &q);for (int i = 1; i <= n; i++) {scanf("%d", &p[i]);last[i] = m + 1, pos[p[i]] = i;}for (int i = 1; i <= m; i++) {scanf("%d", &a[i]);}for (int i = m; i >= 1; i--) {last[a[i]] = i;int id = pos[a[i]] % n + 1;r[i][0] = last[p[id]];}for (int i = 0; i < 20; i++) {r[m + 1][i] = m + 1;}for (int j = 1; j < 20; j++) {for (int i = 1; i <= m; i++) {r[i][j] = r[r[i][j - 1]][j - 1];}}memset(minn, 0x3f, sizeof minn);for (int i = 1; i <= m; i++) {int p = i, last = n - 1;for (int j = 19; j >= 0; j--) {if (last >= (1 << j)) {p = r[p][j];last -= 1 << j;}}update(1, 1, m, i, p);}for (int i = 1, l, r; i <= q; i++) {scanf("%d %d", &l, &r);putchar(query(1, 1, m, l, r) <= r ? '1' : '0');}return 0;
}

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

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

相关文章

你的通勤时间都去哪了?

大家好&#xff0c;我是Z哥。今天我来唠叨一下。最近无意间看到一份报告&#xff0c;关于我们职场人士上下班通勤时间的。有时候想想也挺无奈的&#xff0c;我们越想去发达一些的城市打拼&#xff0c;反而越被通勤这种琐碎的事情给耽误更多的奋斗时间。但是没办法&#xff0c;在…

规模化敏捷必须SAFe

引子&#xff1a;规模化敏捷转型从来不是一件容易的事情。当只有1-2个敏捷团队进行协同的时候&#xff0c;计划和工作同步是可控的。团队和产品负责人互相聊一聊&#xff0c;基本就能搞清楚需要做什么&#xff0c;一个简单的SOS架构&#xff08;Scrum of Scrums&#xff09;就能…

http1.0 http1.1 http2 之间的区别

一、HTTP基础 1.1 HTTP定义 HTTP协议&#xff08;HyperTextTransferProtocol&#xff0c;超文本传输协议&#xff09;是用于从WWW服务器传输超文本到本地浏览器的传输协议。 1.2 HTTP发展史 1.3 HTTP1.0 早先1.0的HTTP版本&#xff0c;是一种无状态、无连接的应用层协议。 …

B. Alyona and a tree(dsu on tree + bit)

B. Alyona and a tree&#xff08;dsu on tree bit&#xff09; 给定一颗以111号节点为根的树&#xff0c;每个点有点权aia_iai​&#xff0c;边有边权&#xff0c;如果vvv控制了点uuu&#xff0c;当且仅当uuu是vvv的子树中的节点且dis(u,v)≤audis(u, v) \leq a_udis(u,v)≤…

HTTP get post put delte等

超文本传输协议&#xff08;HTTP, HyperText Transfer Protocol&#xff09;是一种无状态的协议&#xff0c;它位于OSI七层模型的传输层。HTTP客户端会根据需要构建合适的HTTP请求方法&#xff0c;而HTTP服务器会根据不同的HTTP请求方法做出不同的响应。 HTTP版本与HTTP请求方…

P1600 [NOIP2016 提高组] 天天爱跑步(线段树合并,lca)

P1600 [NOIP2016 提高组] 天天爱跑步 给定一颗有nnn个点的树&#xff0c;有mmm个人在树上移动&#xff0c;第iii个人从sis_isi​点&#xff0c;移动到tit_iti​点&#xff0c;且他们按照最短路移动&#xff0c;每秒移动一条边的距离&#xff0c; 点iii在wiw_iwi​时刻有一个观…

漫画:程序员一时单身一时爽,一直单身...有点惨

1妹子没吃早饭早啊敲哥&#xff0c;你在吃早饭啊嗯啊&#xff0c;你吃了吗&#xff1f;没呢&#xff0c;早上实在是太赶了&#xff0c;没来得及嗯...那我还是换个地方吃吧免得馋着你。。。2代码重要还是女朋友重要女朋友能哄好&#xff0c;代码能哄好吗&#xff1f;写代码是赚钱…

P3564 [POI2014]BAR-Salad Bar(ST表 + 二分)

P3564 [POI2014]BAR-Salad Bar 给定一个长度为nnn的数组&#xff0c;里面元素只有111跟−1-1−1&#xff0c;问选出一个长度为lenlenlen的区间使得&#xff0c;这个区间的前缀和时刻大于零&#xff0c;后缀和时刻大于零&#xff0c;输出最大长度lenlenlen&#xff0c; 考虑枚…

【招聘(深圳)】迈瑞招.NET 开发Leader和PM

应用开发管理&#xff08;开发leader&#xff09;工作职责&#xff1a;1.负责应用开发小组管理&#xff1b;2.协助项目经理制定项目计划和控制项目进度&#xff1b;3.评估用户需求&#xff0c;设计解决方案、系统功能&#xff0c;并带领开发小组进行交付&#xff1b;4.对开发过…

Java RMI,Socket,HttpClient

Java RMI Java远程方法调用&#xff08;Java Remote Method Invocation&#xff09; 是Java编程语言里&#xff0c;一种用于实现远程过程调用的应用程序编程接口。 它使客户机上运行的程序可以调用远程服务器上的对象。 远程方法调用特性使Java编程人员能够在网络环境中分布操…

E. Sign on Fence(整体二分 + 线段树维护区间最大连续 1 的个数)

E. Sign on Fence 给定一个长度为nnn的数组aaa&#xff0c;1≤ai≤1091 \leq a_i \leq 10 ^ 91≤ai​≤109&#xff0c;有mmm次询问&#xff0c;每次给定l,r,kl, r, kl,r,k&#xff0c;要我们在[l,r][l, r][l,r]区间内找到一个长度为kkk的区间&#xff0c;使得区间最小值最大&…

AutoMapper多个对象映射到一个Dto对象

一、定义源映射对象为了体现AutoMapper映射特性&#xff0c;在SocialAttribute中的Name属性没有定义在People中&#xff0c;People的Ear属性也不存在与SocialAttribute和PhysicalAttribute中。代码如下&#xff1a;二、注入AutoMapper例子中使用的IOC容器是Autofac&#xff0c;…

cookie 与 session

1 背景介绍 什么是会话&#xff1f; 用户打开一个浏览器, 点击多个超链接, 访问服务器多个web资源, 然后关闭浏览器, 整个过程称之为一个会话。我们知道&#xff0c;HTTP协议是一种"无状态"协议&#xff0c;客户浏览器与服务器建立连接&#xff0c;发出请求&#x…

Java写一个简单的静态文件的HTTP服务器(基于Socket)

** 一、实现思路 ** 1、使用 ServerSocket 监听某一端口&#xff0c;然后等待连接获取 Socket对象。 2、创建一个类 HttpServer 继承 java.lang.Thread 类&#xff0c;重写 run()方法&#xff0c;执行浏览器请求。 3、获得浏览器请求&#xff0c;解析资源文件路径。 4、读…

P2839 [国家集训队]middle(二分 套 主席树)

P2839 [国家集训队]middle 有一个长度为nnn的序列&#xff0c;有mmm次询问&#xff0c;每次询问a,b,c,da, b, c, da,b,c,d&#xff0c;为l∈[a,b],r∈[c,d]l \in [a, b], r \in [c, d]l∈[a,b],r∈[c,d]&#xff0c;[l,r][l, r][l,r]区间的中位数最大是多少&#xff0c;强制在…

asp.net core 使用HttpClientFactory Polly实现熔断降级

前言在NET Core2.1后也是增加更新了很多东西,当然HttpClientFactory更新中的一部分.虽然说HttpClient这个实现了disposable,但使用它的时候用using包装块的方式通常不是最好的选择。处理HttpClient,底层socket套接字不会立即释放。该HttpClient类是未多个请求重复使用而创建的。…

.NET生态系统概览

本文要点.NET 5 预计会在 2020 年发布&#xff0c;届时将统一所有.NET 平台。在进行特性开发时优先考虑性能。C#语言的发展直接推动了开发者的采用。开源社区让.NET 生态系统变得更好。2002 年&#xff0c;.NET 发布。在接下来的 12 年多时间里&#xff0c;.NET 开发社区以看似…

P1848 [USACO12OPEN]Bookshelf G(线段树优化 DP)

P1848 [USACO12OPEN]Bookshelf G 有nnn间物品&#xff0c;每个物品有两个属性Wi,HiW_i, H_iWi​,Hi​&#xff0c;宽度跟高度&#xff0c;要求把这nnn件物品划分成若干连续的组&#xff0c;每组内∑Wi≤L\sum\limits W_i \leq L∑Wi​≤L&#xff0c;并且要求最小化每组最大高…

Java 实现 FTP 服务

1、FTP简介 FTP 是File Transfer Protocol&#xff08;文件传输协议&#xff09;的英文简称&#xff0c;而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时&#xff0c;它也是一个应用程序&#xff08;Application&#xff09;。基于不同的操作系统有不同的…

L. Continuous Intervals(单调栈 + 线段树 + 思维)

L. Continuous Intervals 给定一个长度为nnn的数组&#xff0c;问里面有多少个区间[l,r][l, r][l,r]&#xff0c;满足&#xff0c;对这个区间排序后&#xff0c;两两差值$ \leq 1$&#xff0c;输出区间个数。 如果说区间[l,r][l, r][l,r]是符合要求的&#xff0c;则满足max(a…