bzoj4358: permu

n1.5logn的炒鸡卡

还得来n1.5的才兹辞

我之前还YY并查集兹辞O(log2n)的删除

调了好久不知道为什么,拍了组数据才发现。。。

n1.5的做法:做莫队的时候左端点每次从那块的最右端开始移就好了(具体可以排序然后扫一遍),就不用删除辣。

时间: 2025-01-02 19:09:24

bzoj4358: permu的相关文章

莫队算法(离线)

何谓莫队算法 莫队算法是莫涛队长发明的,为表示对他的尊敬,故称这种算法叫莫队. 适用范围 一种处理序列操作的离线算法,适用范围广,复杂度一般带根号. 莫队算法的思路 假设题目不涉及修改操作. 将所有操作离线,将所有操作进行二元组排序,第一维是左端点所在块的编号,第二维是右端点. 排序后,按照顺序处理询问,维护一个双端队列,同时维护队列内区间的答案,每次从$[L,R]$的答案,扩展到$[L-1,R]$ $[L,R-1]$ $[L+1,R]$ $[L,R+1]$的答案,最终得到当此询问区间的答案.

【BZOJ4358】permu kd-tree

[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

【bzoj4358】permu【XSY1535】seq(莫队+并查集)

考虑莫队,但是我们发现这个东东只支持\(ins\)(至于怎么支持等会再讲),不支持\(del\)操作,所以我们构造一种只\(ins\)不\(del\)的莫队. 由于我们按莫队的方法排序,第一关键字为\(l\)所在的块,第二关键字为\(r\).所以当排完序后,肯定是当\(l\)所在的块相同时,\(r\)单调递增,所以我们对\(l\)所在的块相同的询问进行处理.设对于块\(B\),它的末尾位置为\(end\),我们先找出在排完序中的数组中所有\(l\)所在的块为\(B\)的询问\(q_1\).\(q

bzoj4358 perm

4358: permu Time Limit: 30 Sec  Memory Limit: 512 MB Submit: 327  Solved: 98 [Submit][Status][Discuss] Description 给出一个长度为n的排列P(P1,P2,...Pn),以及m个询问.每次询问某个区间[l,r]中,最长的值域 连续段长度. Input 第一行两个整数n,m. 接下来一行n个整数,描述P. 接下来m行,每行两个整数l,r,描述一组询问. Output 对于每组询问,输出一

permu(变态考试题集)

题目描述 给定一个严格递增的序列T,求有多少个T的排列S满足:∑min(T[i],S[i])=k 输入输出格式 输入格式: 第一行两个数n,k 第二行n个数,表示T 输出格式: 一个正整数表示答案,答案对10^9+9取模 输入输出样例 输入样例#1: 5 10 1 2 3 4 5 输出样例#1: 24 说明 30%的数据n<=10 100%的数据 输入中所有数字为不超过50的正整数,k<=2500 题解:动态规划 正常的思路会想到状态压缩或暴力搜索,可以利用那个min变成普通的动归 f[i][

bzoj 4358 permu

比较容易想到莫队算法+线段树,但是这样时间复杂度是O(nsqrtnlogn)无法通过,考虑如果不进行删除操作,只有添加操作的话那么并查集就可以实现了,于是可以设定sqrtn块,每个块范围为(i-1)*sqrtn到i*sqrtn,那么对于一个左端点在该块之中的询问,若右端点超过块的范围,由于右端点递增,直接添加,而询问在块中的部分则暴力添加,添加完注意还原,复杂度O(nlogn),此题想法与CF620F有一些类似. 代码 1 #include<cstdio> 2 #include<algo

【BZOJ】4358: permu 莫队算法

[题意]给定长度为n的排列,m次询问区间[L,R]的最长连续值域.n<=50000. [算法]莫队算法 [题解]考虑莫队维护增加一个数的信息:设up[x]表示数值x往上延伸的最大长度,down[x]表示数值x往下延伸的最大长度. 增加一个数x时,up[x]=up[x+1]+1,down[x]=down[x-1]+1.令t=up[x]+down[x]+1,可以用于更新答案. 同时,增加x后会影响到x所在连续区间最大数和最小数,中间的数字不会影响答案(只考虑加数),所以有: down[x+up[x]

全排列总结

接触全排列已经好长时间了,一直没有抽空总结一下全排列的相关问题,下面来说一下! 排列 一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(Arrangement).特别地,当m=n时,这个排列被称作全排列(Permutation). 排列数公式: 特别,当n==m时为全排列的公式! 下一个全排列算法 lintcode链接:http://www.lintcode.com/zh-cn/problem/next-permutation/ 样例

awk中文手册

1. 前言 有关本手册 : 这是一本awk学习指引, 其重点着重于 : l        awk 适于解决哪些问题 ? l        awk 常见的解题模式为何 ? 为使读者快速掌握awk解题的模式及特性, 本手册系由一些较具代表性的范例及其题解所构成; 各范例由浅入深, 彼此间相互连贯,范例中并对所使用的awk语法及指令辅以必要的说明. 有关awk的指令, 函数,...等条列式的说明则收录于附录中, 以利读者往后撰写程序时查阅. 如此编排, 可让读者在短时间内顺畅地学会使用awk来解决问题