Recently, i have been thinking about this problem : You are given 2 permutations P and Q od length N and 1,2,3,...N appear exactly 1 time in each permutation. You have to answer Q query (Q <= N <= 2e5) with form L1 R1 L2 R2 means that how many element are "on" in range L2 R2 of Q if all element in range L1 R1 of P is "on" all other element in this query is "off"
Ex input : 6
3 2 4 5 1 6
1 2 3 4 5 6
1
2 4 4 6
output : 2
I have tried to use Mo + segment tree with O(N*sqrt(N)*logN) but it seems to be too slow. Anyone have better idea ?
Auto comment: topic has been updated by hurt_FOR_heart (previous revision, new revision, compare).
Auto comment: topic has been updated by hurt_FOR_heart (previous revision, new revision, compare).
Problem link please?
https://oj.uz/problem/view/IOI18_werewolf i am trying to do this problem and i am stucking at above part. Looking forward for your help
My solution: use your Mo solution, but instead of the segment tree use a data structure that you can update in $$$O(1)$$$ time and query in $$$O(\sqrt{n})$$$ time. Then, complexity will be $$$O(n \sqrt{n})$$$.
eliminate the log factor, lol
Can you describe you idea more detail please ?
Interesting, you have been thinking about the problem and you have constraint Q <= N <= 2e5, but you can eliminate that log factor
If element $$$x$$$ is on position $$$p$$$ in $$$P$$$, and on position $$$q$$$ in $$$Q$$$, then add point $$$(p,q)$$$ to a 2D-plane. We do this for every $$$1 \leq x \leq N$$$.
Then, the query $$$(L_1,R_1,L_2,R_2)$$$ is equal to: how many points are in the rectangle $$$(L_1, R_1, L_2, R_2)$$$?
We can solve this problem offline with line sweep and a data structure (Fenwick Tree or Segment Tree) in $$$O(N \log N)$$$.
Nice solution ! Thank you !
Same problem on CF with updates Intersection of Permutations