————数据结构————
文章平均质量分 69
starusc
这个作者很懒,什么都没留下…
展开
-
2018提高组模拟10
2018提高组模拟10————————————————————————————————————————20181005T1阶乘(WOJ4043)素数线性筛 分解质因数 数学推理描述有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值。输入共两行。第一行一个正整数n。第二行n个正整数a[i]...原创 2018-10-06 14:23:18 · 353 阅读 · 0 评论 -
Treap的入门学习小结【HNOI2004宠物收养所】【HNOI2002营业额统计】【普通平衡树】
前言 二叉查找树旋转TreapTreapTreapTreap是一种平衡树,它在普通二叉查找树的基础上,给每个结点多赋予了一个属性:优先级(priorityprioritypriority)。对于TreapTreapTreap中的每个结点,除了它的权值满足二叉查找树的性质外,它的优先级还满足堆性质,也就是结点的优先级小于它所有孩子的优先级。换句话说,从权值上看,TreapTreapTr...原创 2019-01-23 11:32:03 · 192 阅读 · 0 评论 -
可持久化trie入门
初步认识:处理trie树上的异或(xor)问题bzoj3261 最大异或和推荐题解注意:sum[ ]sum[ ]sum[ ]记录的是经过这个点的次数sum[son[y][!p]]−sum[son[x][!p]]>0sum[son[y][!p]]-sum[son[x][!p]]>0sum[son[y][!p]]−sum[son[x][!p]]>0表示...原创 2019-01-26 13:38:05 · 717 阅读 · 0 评论 -
【NOI2015】软件包管理器
【NOI2015】软件包管理器树链剖分的第二题,虽然抄了板子题不少,但还算简单吧。【注意是从000开始的哦】线段树和树链剖分的基本操作啦,就先这样吧。树链剖分入门#include<bits/stdc++.h>using namespace std;const int N=1e5+5;struct edge{int v,nxt;}e[N];int first...原创 2019-01-21 12:13:22 · 308 阅读 · 1 评论 -
2019 第一试【迅雷】【Alice&Bob】【TJOI2015旅游】20190120
T1【TJOI2015旅游】WOJ 4322一道树链剖分,不过我还不会,就先跳过。T2【迅雷】WOJ 2876唯一 一道考场做出的题,确实有点水,看完题面,就大概知道是类似于kruskalkruskalkruskal的并查集做法。输入边,排序,从大到小看。如果电脑和资源器连通,就结束并输出当前这条边的长度。【注意每次合并都要把节点信息更新至祖先节点!!!还有别忘了正无穷...原创 2019-01-21 12:01:36 · 168 阅读 · 0 评论 -
【月下“毛景树”】树链剖分
月下“毛景树”应该一看都知道是树链剖分吧,但这道题细节特别多。树链剖分入门把边权转到深度较深的点上,这样可以用树链剖分操作了操作路径的时候,两个点的LCALCALCA不能被改动和统计懒标记需要两个,且覆盖标记的优先级要高于加的标记,每次传递,修改覆盖标记,要把加标记清为零覆盖标记初始化为−1-1−1,因为可能会覆盖为零最好不要复制粘贴,有些地方未修改到,就很难查错单个树枝的修...原创 2019-01-24 13:26:19 · 162 阅读 · 0 评论 -
2018提高组模拟18【优美的序列】【飞越行星带】【距离】
——————————————————————————————————20181102T1 【4201 优美的序列】T2 【4202 飞越行星带】T3 【4203 距离】【以上题目均出自WOJ】T1 【4201 优美的序列】单调栈4201就像找一个数左边最近的比自己大的数,右边最近的比自己大的数一样。只不过这道题是找左边最近的不是自己倍数的数,右边最近的不是自己倍数的数一样。...原创 2018-11-02 16:41:01 · 142 阅读 · 0 评论 -
【NOIP2015 提高组 信息传递】【NOIP2017提高组DAY1T2 时间复杂度】【NOIP2017提高组DAY2T1 奶酪】
【NOIP2015 提高组 信息传递】tarjan* _ *这道题用tarjan就可以了,判一下有向图强联通就好了,如果强连通的点大于一就和ans取一个min。【图可能不联通,所以要加一个循环】#include&lt;bits/stdc++.h&gt;using namespace std;int n,a[200005],ans;int dfn[200005],low[20000...原创 2018-11-01 19:48:04 · 199 阅读 · 0 评论 -
2018提高组模拟14
————————————————————————————20181030还有10天就noip了,还有6天就要被半期摧残了……啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊~~~~~~~~~~~~~~~~~还是写题解吧……~~T1 排列树【WOJ4163】* _ *排列组合数学推理从根往下搜,每一棵子树的根都记录一个siz大小。每一棵子树的根,我们都要分配一个最小的值,然...原创 2018-10-30 22:08:55 · 183 阅读 · 1 评论 -
20181029小结
#3258 【HNOI2004】L语言#2204 秘密消息#1359 传送带#3175 「THUSC 2016」成绩单#4147 【2018NOIP提高测试1026】naive 的图 (graph)#1903 第k大的数原创 2018-10-30 21:25:49 · 159 阅读 · 0 评论 -
20181026小结
【模板】矩阵快速幂 2714性感手枪 4145简单题 2723货车运输 1807【模板】树状数组 区间修改区间求和 1685原创 2018-10-26 22:49:06 · 173 阅读 · 0 评论 -
2018提高组模拟13
20181029T1 洛阳怀【WOJ4150】素数线性筛GCD数学推理* _ *多读几遍,不难发现:如果我们除以了前i个的GCD,那么i以后的都不能除了每个数的分数是它的好的质因数个数减去坏的质因数个数(打表可以发现)所以我们记录一下每个数的好质因数的个数和坏质因数的个数,再按记录一个前i个数的GCD的好质因数的个数和坏质因数的个数。因为我们除以后面对前面是没有影响的...原创 2018-10-29 13:06:59 · 102 阅读 · 0 评论 -
树链剖分
树链剖分其实就是把树分成一个一个的链,方便用线段树维护。轻重边剖分我们将树中的边分成两种:轻边,重边。如下图中加粗的边是重边,其余是轻边。对于每一个节点,我们都记size最大的儿子连的边为重边。【注意:每一个点都连着重边。】轻重边有几个性质:性质 1:如果(u,v)为轻边,则size(v) &amp;lt;= size(u) / 2。证明:设size(v) &amp;gt; size(u) ...原创 2018-10-13 23:29:14 · 195 阅读 · 0 评论 -
动态维护最小生成树(IOI2003Maintain)
WOJ2235Maintain描述农夫约翰的奶牛们希望能够在农场的N(1<=N<=200)块田地中自由的旅游,尽管这些田地被树林分开了。他们希望能够通过维护一对对田地间的路径使得任意两块田地间都有通路。奶牛们可以沿着任一方向的维护的路径旅游。奶牛们并不建立路径,取而代之,他们维护他们所发现的野生动物建立的路径,任意一周,他们可以选择维护任意的一个或所有的他们所知道的野生动物建立...原创 2018-10-07 14:53:38 · 962 阅读 · 0 评论 -
树上序列
dfs序(一棵树被dfs 时所经过的节点的顺序)一般的作用是维护子树信息,如果记录dfni 表示i 号点的dfs 序,sizei表示i 号点的子树大小,那么x 是y 的祖先等价于:dfny ∈(dfnx,dfnx + sizex - 1];维护一棵树,支持:子树加,链加,单点求值因为是dfs序,所有子树的序号一定是连续的。所以子树加相当于区间加。(T1)而链加相当于单点加:(T2)...原创 2018-10-06 19:29:29 · 193 阅读 · 0 评论 -
20190218【梦境】【玩具】【飘雪圣域】
贪心玄学DP树状数组T1【梦境】WOJ707070分网络流跑二分图#include<bits/stdc++.h>using namespace std;inline int read(){ int x=0,f=1;char c=getchar(); while(!isdigit(c)){if(c=='-')f=-1;c=getchar();} while...原创 2019-02-19 09:09:40 · 198 阅读 · 0 评论