bzoj4358: permu】的更多相关文章

[BZOJ4358]Permu(回滚莫队) 题面 给出一个长度为n的排列P(P1,P2,...Pn),以及m个询问.每次询问某个区间[l,r]中,最长的值域连续段长度. 分析 最简单的方法显然是用线段树维护最长值域连续段长度,复杂度\(O(n\sqrt n \log n)\),会TLE 我们以值为下标维护两个数组lb[v],rb[v]表示<v(定义为"左侧")和>v(定义为"右侧)的连续段长度,当我们加入一个值v的时候,会产生一个长度为lb[v]+rb[v]+1的…
问题: permu 时间限制: 30 Sec  内存限制: 512 MB 题面 题目描述 给出一个长度为n的排列P(P1,P2,...Pn),以及m个询问.每次询问某个区间[l,r]中,最长的值域 连续段长度. 输入格式 第一行两个整数n,m. 接下来一行n个整数,描述P. 接下来m行,每行两个整数l,r,描述一组询问. 输出格式 对于每组询问,输出一行一个整数,描述答案. 样例输入 8 3 3 1 7 2 5 8 6 4 1 4 5 8 1 7 样例输出 3 3 4 题解 线段树+莫队. 考虑…
莫队算法,用线段树维护最长连续1,复杂度O(nsqrt(m)logn) 刚开始TLE了,看了claris大爷的blog说是kd-tree,然而并不会kd-tree…… 然后就打算弃疗了...弃疗之前加了点常数优化,然后就AC了...(滑稽 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <…
题意 题目链接 Sol 感觉自己已经老的爬不动了.. 想了一会儿,大概用个不删除莫队+带撤销并查集就能搞了吧,\(n \sqrt{n} logn\)应该卡的过去 不过不删除莫队咋写来着?....跑去学.. 带撤销并查集咋写来着?....跑去学... 发现自己的带撤销并查集是错的,,自己yy着调了1h终于过了大数据.. #include<bits/stdc++.h> #define Pair pair<int, int> #define MP(x, y) make_pair(x, y…
这道题是几天前水过去的,现在快没印象了,水一发. 首先我们看到它让求解的是最长的值域 连续段长度,很好. 然后就想到了山海经,但但是我还没有做. 然后又想到了很久以前的一次考试的T3旅馆hotel(我是用暴力直接过的QAQ),正解也是线段树. 但是我还是想不到用线段树,因为我单纯的认为当前在学莫队就只会用到莫队. 后来还是问了同学. 然后就很简单了. 我们考虑询问区间的这类操作. 一种做法是各种神仙树套树解决区间问题. 另一种骗分做法就是莫队了. 不会莫队..出门左拐(逃 那么这道题思路就可以出…
浅谈\(K-D\ Tree\):https://www.cnblogs.com/AKMer/p/10387266.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id=4130 这题跟\(BZOJ4358:permu\)一样. 不过我们需要把区间包含某个点改成判断区间是否有交点. 假设我们有俩区间\([l,r]\)与\([L,R]\) 假设俩不相交则满足:\(r<L||l>R\): 假设有交:\(l<=R\)且\(L<=r\…
[BZOJ4358]permu Description 给出一个长度为n的排列P(P1,P2,...Pn),以及m个询问.每次询问某个区间[l,r]中,最长的值域连续段长度. Input 第一行两个整数n,m. 接下来一行n个整数,描述P. 接下来m行,每行两个整数l,r,描述一组询问. Output 对于每组询问,输出一行一个整数,描述答案. Sample Input 8 3 3 1 7 2 5 8 6 4 1 4 5 8 1 7 Sample Output 3 3 4 HINT 对于询问[1…
浅谈\(K-D\) \(Tree\):https://www.cnblogs.com/AKMer/p/10387266.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id=4358 把询问当做一个个点,从小到大对于每个权值,在\(K-D\) \(Tree\)上寻找包含这个权值的区间区间加一,其它的全部清零.对于每个询问,历史最大值就是答案.历史最大值的维护方法看这里:https://www.cnblogs.com/AKMer/p/102…
permu [Description] 给定两个1~N的全排列A,B.有两个指针q和p,一开始q.p都为0,可执行以下三种操作: 1.q+1:2.p+1:3.q+1且p+1(Aq+1≠Bp+1时才可以这么做). [Hint] <=1000000 f[i][j]代表p指i,q指j的时候还需要多少步才能到终点 30分转移:f[i][j]=f[i+1][j+1]+1(a[i+1]!=a[j+1]) f[i][j]=min(f[i+1][j],f[i][j+1])+1. 题目中有一个性质..然而之前并没…
4358: permu 链接 分析: 不删除的莫队+可撤销的并查集. 每次询问先固定左端点到一个块内,然后将这些右端点从小到大排序,然后询问的过程中,右端点不断往右走,左端点可能会撤销,但是移动区间不超过$\sqrt n$个,用带撤销的并查集维护. 复杂度$O(n \sqrt n log n)$ 代码: #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #inc…