随笔分类 - 数据结构
摘要:题目看这里这么好玩的数据结构题肯定是要来做一做啦考虑splay-显然用一个节点去维护一个连续的内存块,每次申请内存就找一块尽可能前的,释放就找一个有相交的并合并,没有则新建节点splay一打还是错落百出,不过效率还是可以的,跑了第一和map一样快#include#in...
阅读全文
摘要:题目看这里 各种离线套路题。。。我们考虑对每个元素都先预处理答案让后就可以O(lg n)回答了将元素排序后,对于两个询问i,j∈(s[k],s[k+1]]的答案是一样的,我们考虑计算当i=s[k]时的答案显然,当i=s[1]的时候,答案就是总区间数这时考虑当i->s[...
阅读全文
摘要:题目看这里也是非常简单的线段树合并模板题了,虽然实际上最好的做法因该是开数组合并(这样是均摊O(1)的)不过还算跑的快,第四#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#inc...
阅读全文
摘要:A省有一条东西向的公路经常堵车,为解决这一问题,省政府对此展开了调查。调查后得知,这条公路两侧有很多村落,每个村落里都住着很多个信仰c教的教徒,每周日都会开着自家的车沿公路到B地去“膜拜”他们的教主,这便是堵车的原因。详细调查显示:这里总共有N个村落,并且它们都在B地...
阅读全文
摘要:这道题在我做的前一天被wjw大佬压中了,当时随便脑洞了一个做法于是在比赛还剩3分钟的时候我把它写了一下就切了考虑一个集合S,f(S)=ΣSi 显然我们将所有的f排序之后有一个性质rank[f(S)]+rank[f(~S)]=2^N那么显然,中位数就是将全集划分为两个尽...
阅读全文
摘要:现在,二维平面上有N个点。Alex 需要实现以下三种操作:1. 在点集里添加一个点;2. 给出一个点,查询它到点集里所有点的曼哈顿距离的最小值;3. 给出一个点,查询它到点集里所有点的曼哈顿距离的最大值。 两个点的曼哈顿距离定义为它们的横坐标差的绝对值与纵坐标差的绝对...
阅读全文
摘要:一开始看错题目了,很容易看成i喜欢的中,让后写主席树区间第k大反过来其实也很好做,我们考虑将所有的L,R,P丢到一起考虑,分两种操作,询问和修改(是不是很像cdq分治)排个序再加上个平衡树离散化+ZKW线段树求第k大就好了(注意题目坑点:是第k大不是第k小)#prag...
阅读全文
摘要:小Y:“小R你是萝莉控吗。”小R:“...” 为了避免这个尴尬的话题,小R决定给小Y做一道题。有一个长度为n的正整数数组A,满足艾> =艾+ 1,现在构造一个数组B,令的Bi = ΣA[j] (j∈[i,n])。现在,有一个N * N的网格图,左下角坐标是(1,1),...
阅读全文
摘要:小Y 最近开始学习算法姿势,但是因为小R 非常BB,给了她很多B6 题,所以她觉得自己已经没有什么前途了。于是小R 给了她一些稍微简单的题,让她觉得已经没有什么好害怕的了,其中一道是这样的:给定一个长度为n 只包含左括号和右括号的序列,现在小R 想要知道经过每一个位置...
阅读全文
摘要:如前面提到,ABC的汽车工厂有N个工人,他们在一个传送带上生产汽车,工人从左到右排列,编号依次为1到N,采用流水线模式,每个人负责自己的一部分工作。生产一台汽车需要从1号工人开始,当1号完成他的工作后,2号就会开始工作,然后是3号,最后当N号工人完成他的工作后,整个汽...
阅读全文
摘要:又是被水题坑了。。。一直想不出来看题解说要什么主席树,于是开始打离线算法结果打到一半发现要强制在线。。No!!!发现直接AC自动机似乎可做?树剖之后在AC自动机上跑的时候判断一下不就好了吗!连线段树都不要让后快乐切掉,速度还可以(废话,人家N^2暴力都跑得飞快)#pr...
阅读全文
摘要:给你一个N 个数组成的序列V,要你删除其中K 个数,M 表示剩下的数字中任意两个数的差值的最大值,m 表示最小差值,要你计算删除K 个数后,M+m的最小值。一看便知道先排序,那么答案必然是一段连续的区间,直接上单调队列就好#pragma GCC opitmize("O...
阅读全文
摘要:非常好的树剖模板题了,直接C颗线段树上去就好了,动态开点一次写对~#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#include#define N 100010#define m...
阅读全文
摘要:Jzoj1020:Dramatic是在太菜了。最近,他学习了有关逆序对的知识,并且掌握了计算一个序列逆序对个数的高效算法,因此,他兴冲冲的跑去向YY牛炫耀。YY牛对此不屑一顾,并打击Dramatic说:“这是在太小儿科了!”Dramatic很不甘心,于是在他的强烈要...
阅读全文
摘要:你有一个字符串S,最开始为空,要求支持两种操作在S后面加入字符c删除S最后一个字符每次操作询问S有多少个两两不同子串应该本来应该用SAM+Trie离线做的,然而为了练一下后缀平衡树就写了其实也很好写,用哈希比较一下就好了,可以用set实现,开一个数组存每个后缀对应的节...
阅读全文
摘要:艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了。拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛。所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多么的重要。 拉拉队的选拔工作已经结束,在雨荨和校长的挑选下,n位集优秀的身材...
阅读全文
摘要:给一个树,每条边上面有一个字符串,每次询问两个节点路径上的字符串中有多少以给定的一个字符串为前缀显然是一个十分简单的题目,当时想多了打了树剖+Trie合并后来才意识到可以用差分+可持久化trie,过于愚蠢了。。。。。其实solution给了另一种解法,将所有字符串排序...
阅读全文
摘要:下课前,园长提出了一个问题:“KMP 算法只能求出 next 数组。我现在希望求出一个更强大 num 数组——对于字符串 S 的前 i 个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i]。例如 S 为 aaaa...
阅读全文
摘要:题目传送门呃这个不应该是一个简单的二分答案+贪心吗(似乎以前做过但是因为long long 卡了好久)我们考虑只洗衣服的情况,显然就是一个非常愚蠢的二分让后再来单独考虑烘干的情况,和上面一样也是一个二分最后考虑如何将两者的时间合并,显然,我们可以将所有衣服送出机器的时...
阅读全文
摘要:人称不死将军的林登·万,与他的兄弟林登·图两人的足迹踏遍了地球的每一寸土地。他们曾将战火燃遍了世界。即使是lifei888这样的强悍人物也从来没有将他彻底击败。这一次,林登·万在N个城市做好了暴动的策划。然而,在起事的前一天,将军得知计划已经泄漏,决定更改计划,集中力...
阅读全文