题目描述

You are given two permutations pp and qq , consisting of nn elements, and mm queries of the form: l_{1},r_{1},l_{2},r_{2}l1​,r1​,l2​,r2​ $ (l_{1}<=r_{1}; l_{2}<=r_{2}) $ . The response for the query is the number of such integers from 11 to nn , that their position in the first permutation is in segment [l_{1},r_{1}][l1​,r1​] (borders included), and position in the second permutation is in segment [l_{2},r_{2}][l2​,r2​](borders included too).

A permutation of nn elements is the sequence of nn distinct integers, each not less than 11 and not greater than nn .

Position of number vv (1<=v<=n)(1<=v<=n) in permutation g_{1},g_{2},...,g_{n}g1​,g2​,...,gn​ is such number ii , that g_{i}=vgi​=v .

输入输出格式

输入格式:

The first line contains one integer n\ (1<=n<=10^{6})n (1<=n<=106) , the number of elements in both permutations. The following line contains nn integers, separated with spaces: p_{1},p_{2},...,p_{n}\ (1<=p_{i}<=n)p1​,p2​,...,pn​ (1<=pi​<=n) . These are elements of the first permutation. The next line contains the second permutation q_{1},q_{2},...,q_{n}q1​,q2​,...,qn​ in same format.

The following line contains an integer m\ (1<=m<=2·10^{5})m (1<=m<=2⋅105) , that is the number of queries.

The following mm lines contain descriptions of queries one in a line. The description of the ii -th query consists of four integers: a,b,c,d\ (1<=a,b,c,d<=n)a,b,c,d (1<=a,b,c,d<=n) . Query parameters l_{1},r_{1},l_{2},r_{2}l1​,r1​,l2​,r2​ are obtained from the numbers a,b,c,da,b,c,dusing the following algorithm:

  1. Introduce variable xx . If it is the first query, then the variable equals 00 , else it equals the response for the previous query plus one.
  2. Introduce function f(z)=((z-1+x)\ mod\ n)+1f(z)=((z−1+x) mod n)+1 .
  3. Suppose l_{1}=min(f(a),f(b)),r_{1}=max(f(a),f(b)),l_{2}=min(f(c),f(d)),r_{2}=max(f(c),f(d))l1​=min(f(a),f(b)),r1​=max(f(a),f(b)),l2​=min(f(c),f(d)),r2​=max(f(c),f(d)) .

输出格式:

Print a response for each query in a separate line.

输入输出样例

输入样例#1:

3
3 1 2
3 2 1
1
1 2 3 3
输出样例#1:

1
输入样例#2:

4
4 3 2 1
2 3 4 1
3
1 2 3 4
1 3 2 1
1 4 2 3
输出样例#2:

1
1
2 把第二个排列的数在第一个排列中对应的位置记一下,主席树跑一跑就行了。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<cstring>
#define ll long long
#define maxn 1000005
using namespace std;
struct node{
node *lc,*rc;
int s;
}nil[maxn*30],*rot[maxn],*cnt;
int a[maxn],n,ky,num[maxn];
int m,le,ri,k,preans=-1,ple,pri;
char ch; inline int add(int x,int y,const int ha){
return (x+y)%ha;
} node *update(node *u,int l,int r){
node *ret=++cnt;
*ret=*u;
ret->s++; if(l==r) return ret; int mid=l+r>>1;
if(le<=mid) ret->lc=update(ret->lc,l,mid);
else ret->rc=update(ret->rc,mid+1,r); return ret;
} int query(node *u,node *v,int l,int r){
if(l>=le&&r<=ri) return v->s-u->s; int mid=l+r>>1,an=0;
if(le<=mid) an+=query(u->lc,v->lc,l,mid);
if(ri>mid) an+=query(u->rc,v->rc,mid+1,r);
return an;
} inline void prework(){
cnt=rot[0]=nil->lc=nil->rc=nil;
nil->s=0; for(int i=1;i<=n;i++){
le=a[i];
rot[i]=update(rot[i-1],1,n);
}
} inline void solve(){
scanf("%d",&m);
while(m--){
scanf("%d%d%d%d",&le,&ri,&ple,&pri); le=add(le,preans,n)+1;
ri=add(ri,preans,n)+1;
ple=add(ple,preans,n)+1;
pri=add(pri,preans,n)+1;
if(le>ri) swap(le,ri);
if(ple>pri) swap(ple,pri); preans=query(rot[ple-1],rot[pri],1,n);
printf("%d\n",preans);
}
} int main(){
scanf("%d",&n);
int now;
for(int i=1;i<=n;i++){
scanf("%d",&now);
num[now]=i;
}
for(int i=1;i<=n;i++){
scanf("%d",&now);
a[i]=num[now];
} prework();
solve(); return 0;
}

  


Codeforces 323C Two permutations的更多相关文章

  1. Codeforces 1089I - Interval-Free Permutations(析合树计数)

    Codeforces 题面传送门 & 洛谷题面传送门 首先题目中涉及排列的 interval,因此可以想到析合树.由于本蒟蒻太菜了以至于没有听过这种神仙黑科技,因此简单介绍一下这种数据结构:我 ...

  2. codeforces Gargari and Permutations(DAG+BFS)

    /* 题意:求出多个全排列的lcs! 思路:因为是全排列,所以每一行的每一个数字都不会重复,所以如果有每一个全排列的数字 i 都在数字 j的前面,那么i, j建立一条有向边! 最后用bfs遍历整个图, ...

  3. Codeforces 382 D Permutations

    题目大意: 给出一张二分图,这张二分图完美匹配的个数是奇数,求删掉第$i(1<=i<=m)$条边后完美匹配个数的奇偶性. 设这张图的邻接矩阵为$A$,那么完美匹配的个数为$A$的积和式,即 ...

  4. CodeForces - 296A-Yaroslav and Permutations(思维)

    Yaroslav has an array that consists of n integers. In one second Yaroslav can swap two neighboring a ...

  5. Codeforces Round #485 (Div. 2) E. Petr and Permutations

    Codeforces Round #485 (Div. 2) E. Petr and Permutations 题目连接: http://codeforces.com/contest/987/prob ...

  6. Codeforces 285 E. Positions in Permutations

    \(>Codeforces \space 285 E. Positions in Permutations<\) 题目大意 : 定义一个长度为 \(n\) 的排列中第 \(i\) 个元素是 ...

  7. Codeforces Round #198 (Div. 2) E. Iahub and Permutations —— 容斥原理

    题目链接:http://codeforces.com/contest/340/problem/E E. Iahub and Permutations time limit per test 1 sec ...

  8. 贪心 CodeForces 124B Permutations

    题目传送门 /* 贪心:全排列函数使用,更新最值 */ #include <cstdio> #include <algorithm> #include <cstring& ...

  9. Codeforces Round #337 Alphabet Permutations

    E. Alphabet Permutations time limit per test:  1 second memory limit per test:  512 megabytes input: ...

随机推荐

  1. Python 技巧(三)—— list 删除一个元素的三种做法

    我们以一个字符串为元素类型的 list 为例,进行列表元素的删除: >>> l = ['no surfing', 'flippers'] 1 法一:remove(val) >& ...

  2. cf976f Minimal k-covering

    枚举 \(k\),对于每个点 \(i\) 我们最多删 \(deg_i-k\) 条边,就源点向第一部.第二部向汇点连边,容量是 \(deg_i-k\),原边连上,容量是 \(1\),这样每流过一条原边在 ...

  3. IOS开发学习笔记016-Foundation框架

     Foundation 框架的学习 一.Foundation 常用结构体 1.NSRange(location,length)  typedef struct _NSRange { NSUIntege ...

  4. 用html5文件api实现移动端图片上传&预览效果

    想要用h5在移动端实现图片上传&预览效果,首先要了解html5的文件api相关知识(所有api只列举本功能所需): 1.Blob对象  Blob表示原始二进制数据,Html5的file对象就继 ...

  5. Python+Selenium练习篇之1-摘取网页上全部邮箱

    前面已经介绍了Python+Selenium基础篇,通过前面几篇文章的介绍和练习,Selenium+Python的webUI自动化测试算是入门了.接下来,我计划写第二个系列:练习篇,通过一些练习,了解 ...

  6. 菜鸟之路——机器学习之KNN算法个人理解及Python实现

    KNN(K Nearest Neighbor) 还是先记几个关键公式 距离:一般用Euclidean distance   E(x,y)√∑(xi-yi)2 .名字这么高大上,就是初中学的两点间的距离 ...

  7. [oldboy-django][2深入django]FBV + CBV + 装饰器

    FBV django CBV & FBV - FBV function basic view a. urls 设置 urls(r'^test.html$', views.test) b. vi ...

  8. sqlserver创建存储过程返回table

    --创建存储过程test create procedure [dbo].[test] ( @I_MTR NVARCHAR (MAX), @I_TYPE NVARCHAR (MAX), @I_FAC N ...

  9. Mysql InnoDB事务

    http://www.cnblogs.com/benshan/archive/2013/01/19/2867244.html 事务的四个特性 1.原子性(atomicity)原子性是指整个数据库事务是 ...

  10. [Gym101138G][容斥原理]LCM-er

    [Gym101138G][容斥原理]LCM-er 题意描述 给定\(n,a,b,x\)四个数字,需要计数满足如下条件序列的个数(答案对\(10^9+7\)取模),条件如下. \[ {a \le A_1 ...