----并查集
文章平均质量分 68
扩展的灰
扩展的灰(Extended Ash)
展开
-
Jzoj3928 射♂击
有问题,找副连,无聊的时候当然也可以找他啦。小W找到了他的叔叔——东厂厂长——宇宙超级无敌老WS yy。他们叔侄两个商量之后决定用弹弓打破社区里的一些窗户,但是弹弓每秒只能彻底打破一扇窗户。而且如果某户窗户的主人回来了的话,他们就不能进行破坏了(不然会死得很惨的)。因为有的人装的玻璃好,有的人装的玻璃差,有的人装的玻璃高,有的人装的玻璃矮,所以你不能要求他们叔侄两个打破不同的窗户获得的快乐值必须相原创 2017-10-04 11:40:15 · 276 阅读 · 0 评论 -
Jzoj3806 小X 的道路修建
给你一个图,求一个最大边和最小边差值最小的生成树首先我们可以枚举最小边,每次跑一个最小生成树即可但是这样会超时,我们考虑优化采用最优性剪枝,假设我们当前树中的最小边是i,当前边是j,当前最优答案是ans,那么对于所有边k使得Length(j)-Length(k)>Ans的边在枚举最小边的时候可以直接跳过,下一次直接从k+1开始枚举,这样就可以优化时间复杂度,期望100分当然这不是正原创 2017-10-02 11:53:12 · 400 阅读 · 0 评论 -
Jzoj3883 线段树
题意:给你一颗树,每次选择一条简单路径进行染色,问最后每条边的颜色此题非常之坑,各种卡,主要是卡栈空间首先看题就写了个树剖,让后各种TLE和RE,开了O3还是不行#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#pragma comment(linker, "/STACK:102400000,102400000") #i原创 2017-10-03 16:58:17 · 286 阅读 · 0 评论 -
Jzoj4736 漆黑列车载运数个谎言(GOSICK系列)
最近的题目都太难了啊,于是在oj上面瞎找题目来切正好这一套题目名都比较优雅于是就选了这一套这个看起来十分像并查集没错,我们发现,如果两个结论互为逆反命题,那么这两个结论等价而且一个逆命题的逆命题或者是反命题的反命题就是自己所以我们发现,1和2是等价的,这就如同敌人的敌人是朋友一般(一道很经典的题了)我们将0视为两个人是朋友,1,2表示两个人是敌人询问就等价于两个原创 2017-10-22 22:36:07 · 498 阅读 · 0 评论 -
一些基础算法的模板(持续更新)
更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f[N],sz[N]; int last=1,cnt=1,n,v[N],r[N],ans=0; inlin原创 2017-10-25 22:05:58 · 3734 阅读 · 0 评论 -
51Nod1204 Parity
题目看这里+一看求和就知道是要先用前缀和的让后看到类似相等和不相等的条件,可以考虑并查集当然这道题由于变量的值一定是0,1所以关系只有不等号也有反传递性,可以直接拆点来做如果s[i]=s[j]那么我们就将i,j所在的并查集合并,将i'和j'所在的并查集合并否则我们将i'和j合并,i和j'合并当一次合并之后发现i和i'在同一个集合里时,直接输出退出#pragma GC原创 2018-04-27 17:29:45 · 228 阅读 · 0 评论 -
CDQ分治&整体二分九连测
整体二分好难a CDQ分治&整体二分九连: A[适者] 先来一个不是cdq分治的题(虽然也可以用分治做) 首先先来考虑按照什么顺序来搞掉这些机甲 对于两个相邻的机甲i,j,先i后j的代价是Ai∗Di+(Di+Dj)∗AjAi∗Di+(Di+Dj)∗AjA_i*D_i+(D_i+D_j)*A_j 那么如果i应该比j先消灭就有 Ai∗Di+(Di+Dj)∗Aj<A...原创 2018-08-19 21:32:06 · 571 阅读 · 0 评论 -
配对堆模板
配对堆是一种可并堆题意:两种操作,合并两个堆或者查询一个堆的最小值,n≤106n\leq 10^6n≤106Pairing−HeapPairing-HeapPairing−Heap还挺好写的,不过并没有传说中那么快这里没有Decrease−KeyDecrease-KeyDecrease−Key的代码,说一下大概怎么实现额外记录一个FatherFatherFather域,执行Decrease...原创 2018-10-25 20:42:10 · 508 阅读 · 0 评论 -
各种杂题合集
.好久没有往blog搬运题解了,稍微总结一下1.基环树一个非常套路的题目类型,都是可以直接复制代码的那种基本操作就是,dfs找环,让后拉出来倍长,最后在上面做dp即可CodeForces 835F Roads in the Kingdom大概就是要找删掉一条边后使得树最小的直径先dp环旁边的数,找到子树的到根最长链,设为fff倍长后令Fi=Si+fi,Gi=fi−SiF_i=S...原创 2018-10-24 22:02:49 · 222 阅读 · 0 评论