
STL
文章平均质量分 56
AbEver
孤单是一个人的狂欢
展开
-
UVALive - 4671 K-neighbor substrings (FFT+哈希+set)
题目传送门点这里题目大意有两个只包含’a’和’b’的字符串A和B,求A中与B的Hamming距离不超过K的本质不同的子串的数量。字符串长度范围为[1,100000],K的范围为[0,100000]。解题思路这是一道巧妙的利用FFT的字符串题。首先将两个字符串用多项式表示, 因为字符只有’a’和’b’, 我们就用0和1来表示原字符位置上对应的项的系数。首先如果用1表示’a’, 0表示’b’的话对于A的原创 2017-08-12 08:03:45 · 712 阅读 · 0 评论 -
BZOJ 3784: 树上的路径(点分治+ST表+堆堆堆)
题目喵述权限门题目大意:给一棵树,有N个点,有边权。所有无向路径中,请你输出前M大的。N<=50000 M<=Min(300000,n*(n-1) /2)思路树上超级钢琴。(拖延症的结果就是现在才写这题)学了一种点分治的套路,在做点分治的时候求出整棵树的dfs序。可以发现,每个点在dfs序列中出现不超过log次。我们不妨称其为点分治序。然后类比超级钢琴,将序列转换到树上。强制路径过分治中心,然后每原创 2018-04-19 07:08:05 · 433 阅读 · 0 评论 -
BZOJ 2006: [NOI2010]超级钢琴(ST表+优先队列)
题目描述传送门题目描述:给你一个长度为N的序列(N<=500,000),求长度在[L,R]中的前K(K<=500,000)大的连续子序列的和,其中-1000<=Ai<=1000。思路本来想写一道水题提升信心,结果没开long long调一年!枚举一段连续子序列的末尾,用ST表可以求出长度在[L,R]中的和最大的答案与开头的位置。这相当于找满足条件的最小的sum[y]。然后我们考虑如何取k个。好像可以原创 2018-03-28 15:12:33 · 264 阅读 · 0 评论 -
BZOJ 5248: [2018多省省队联测]一双木棋(对抗搜索+记忆化)
题目传送门https://www.lydsy.com/JudgeOnline/problem.php?id=5248思路显然每个局面,落子无悔后都是一个从上往下的非严格递减阶梯。所以有效的状态数只有很少,每一行减下一行非负,方案数用隔板法随便一算发现是Cnm+nC_{m+n}^n这么多,不到2∗1052*10^5。所以用一个(m+1)(m+1)进制数压一波,丢进map里哈希掉。然后每一行只能放末尾,原创 2018-04-09 16:56:47 · 532 阅读 · 1 评论 -
UOJ #207. 共价大爷游长沙(不用维护子树的LCT)
传送门题目大意:自己看题目吧。。思路这题真是机巧。为每一条路径随机一个权值,记录每条边上的异或值。对于一条删边,将其权值异或到新的路径上,用LCT维护。判断一条边是否被所有路径经过只用判断异或和是否相等就行了。中间要用map等小技巧,还是比较简单的,不用维护任何东西。但是难想。第一次写随机数冲突了,srand(num)比较可行。还有就是每次询问之前别忘了splay一下。还有一种维护子树异或和的做法,原创 2018-03-26 22:24:06 · 282 阅读 · 0 评论 -
洛谷 P2447 [SDOI2010]外星千足虫(高斯异或消元+bitset)
题目传送门https://www.luogu.org/problemnew/show/P2447思路高斯异或消元就是在模2环境下的高斯消元。解异或方程组跟解一般方程组的区别在于只考虑答案的奇偶性。(假如系数拆成只有0或1)就这题而言,直接高斯消元即可,我们确定当前行主元(为1)后,去消其他行时可以采取异或。当A[j][i]=1时,A[j][k]-=A[j][i]*A[i][k],如果A[i][k]=原创 2018-04-07 18:36:30 · 408 阅读 · 0 评论 -
BZOJ 2298: [HAOI2011]problem a(背包DP)
Description一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低。”问最少有几个人没有说真话(可能有相同的分数)Input第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai、biOutput一个整数,表示最少有几个人说谎Sample Input 3 2 0 0 2 2 2Sample Output 1HINT1原创 2018-03-01 22:06:42 · 476 阅读 · 0 评论 -
洛谷 P2597 [ZJOI2012]灾难(拓扑排序+建树+动态LCA+树上前缀和)
前言(传送门)这是一道神奇的生物题,我和同桌讨论了一节课,然后想到了一些和正解接近的东西,但还是没想到具体的做法。在看完题解后,感觉这题并不难,但是有点神奇。题解首先,食物网是个DAG,我们将食物连向捕食者,并建立虚点表示太阳,并连向所有的生产者。此时基图连通。拓扑排序,我们想知道生物x的灾难值,但我们是从食物开始做的,所以考虑哪些生物死了会导致x死掉。一种生物的死亡必然是其所...原创 2018-03-07 17:51:09 · 400 阅读 · 0 评论 -
BZOJ 4823: [Cqoi2017]老C的方块(最小割)
题目传送门这个题面没有图,十分难受,自己yy一下图是什么样的,或者去看那些大佬的贴图博客吧!题解这题其实是比较典型的最小割模型。前提是你看懂了老C弃疗的图案的规律,否则就很难入手了。比较明显的是,在讨厌的图案中,一个竖着的特殊边的左右两边一定有格子,而且,这两个格子一定另外各连着一个格子。仔细分析,发现这包含且仅包含了那4种情况。(好像明白了横着空4个和竖着空两个的作用)如果我们根据奇偶性等进行奇妙原创 2018-01-25 08:54:54 · 445 阅读 · 0 评论 -
Codeforces contest 883 problem L. Berland.Taxi(Treap+优先队列)
题目传送门:HERE 就让它成为2017年的最后一篇博客吧 这道无脑数据结构题题面过长,翻译自寻。题解这是一道令人愉悦的巧妙的数据结构题。这道题,从爆零到AC用了我两天的时间。直接分析题目。非常明显,我们需要一些数据结构去处理车辆的调动。用堆来存储那些载客的车,记录那些正在载客车辆的编号与可调用的时刻。然后我们对于每一单,需要call那个离出发地最近的taxi,这点用线段树或者Tre原创 2017-12-29 14:42:41 · 618 阅读 · 1 评论 -
BZOJ2719 - [Violet 4]银河之星 (记忆化搜索+hash)
DescriptionInputOutputSolution一看到这题的我是懵逼的,好像有好多状态,妈妈怎么办?然而仔细读题目,转动我们的脑子可以发现,由于每个棋子可以向各个方向移3格,且只会改变自身的位置,整个网格就被划成了9个区域: 0 1 2 3 4 5 6 7 8其中每个区域代表的是处于某个位置的格子能走遍的所有格子的集合。举个栗子:第一行第一列的格子就跟第一行第四列的格子原创 2017-09-10 20:55:15 · 818 阅读 · 1 评论 -
SMOJ 2439 划分 & [CERC2017] Buffalo Barricades(set+扫描线+并查集+乱搞)
题目大意网格上有n个点(x,y),有q个询问,每次在(a,b)的右上角放一个向左和向下的栅栏,问栅栏围进了多少个点,每个栅栏碰到原来的栅栏或坐标轴就会结束。1<=n,q<=100000 1<=a[i],b[i]<=10^9 1<=x[i],y[i]<=10^9思路考试时的我是很naive的,看错题了,以为一个点只能贡献一次答案,写了一个假的CDQ+线段树,样例不过。其实从样例就可以看出一个点可能原创 2018-04-13 20:52:35 · 528 阅读 · 0 评论