上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 38 下一页
摘要: 设$d[x]$表示端点位于$x$子树内部的非树边条数,那么有两种情况: $1.$割去的两条树边$(x,fa[x]),(y,fa[y])$中,$x$是$y$的祖先,那么此时需要割去的非树边数量为$d[x]-d[y]$。 显然固定$x$之后$y$越靠上越好,因此$y$一定是$x$的儿子,枚举即可,时间复 阅读全文
posted @ 2017-08-27 04:29 Claris 阅读(809) 评论(1) 推荐(0) 编辑
摘要: 用SAM支持往末尾在线添加字符的功能。 设$f[i][j]$表示右端点为i的每个左端点的答案,那么当$i$变为$i+1$时,在SAM的parent链形成的树中会新增一个叶子$p$。 对于每个节点,维护它最后一次出现的位置的右端点$v$,那么加入$p$的时候,需要把它到根路径上所有节点的$v$都改为$ 阅读全文
posted @ 2017-08-24 04:42 Claris 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 首先通过DFS序将原问题转化为序列上区间加、询问区间kth的问题。 考虑分块,设块大小为$K$,每块维护排序过后的$pair(值,编号)$。 对于修改,整块的部分可以直接打标记,而零碎的两块因为本来有序,故可以按照修改区间将其分离成两个有序序列$A$(不在修改区间)和$B$(在修改区间)。 对$B$ 阅读全文
posted @ 2017-08-23 05:20 Claris 阅读(1121) 评论(0) 推荐(1) 编辑
摘要: 不难发现题中过程对应着动态维护关于$C$的最大生成树。 为了让$D$最大,同时让字典序最大,那么最后得到的一定是按$pair(C,D,编号)$排序的最大生成树。 对于每条非树边$(u,v,C)$,那么它要早于树上$u$到$v$路径上任意一条同$C$值的边出现。 而非树边之间显然不存在限制关系,因此非 阅读全文
posted @ 2017-08-18 03:23 Claris 阅读(529) 评论(0) 推荐(1) 编辑
摘要: 维护一个保护集合$S$,表示哪些点$A$可能胜利。 首先将所有绿点加入$S$。 $1.$对于一个不在$S$的$A$点,若它存在某个后继在$S$中,则将其加入$S$。 $2.$对于一个不在$S$的$B$点,若它所有后继都在$S$中,则将其加入$S$。 通过拓扑可以$O(n+m)$求出$S$集合,那么剩 阅读全文
posted @ 2017-08-17 04:28 Claris 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 枚举子串的中心,往两侧扩展,将两侧对应位置的字符交替写下来,得到一个字符串$S$。 若前后长度为$L$的子串循环同构,则在$S$中它们对应长度为$2L$的前缀,需要满足它可以由不超过$2$个偶回文串拼接而成。 有一个结论是,若$S=uv$,其中$uv$都是偶回文串,那么要么$u$是$S$的最长偶回文 阅读全文
posted @ 2017-08-10 02:55 Claris 阅读(1053) 评论(0) 推荐(0) 编辑
摘要: 把$($看作$-1$,$)$看作$1$,设$a$为前缀和,则相当于找两个位置$x,y$使得$a[x]=a[y]$,且$a[x]$是$[x,y]$的区间最大值。 求出询问区间的最大值$o$,然后找到$o$在该区间内最左和最右的出现位置,将其作为答案。 那么剩下的答案只可能在$[l,o)$或$(o,r] 阅读全文
posted @ 2017-08-10 02:19 Claris 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 线段树维护每个点的最有可能是答案的数以及它的权重。 合并两个节点的时候,将权重互相抵消,保留较大的那一个。 得到答案后,再在对应权值的Treap中查询出现次数,检查是否真正是答案。 时间复杂度$O(n\log n)$。 阅读全文
posted @ 2017-08-10 01:20 Claris 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 求出离每个点最近的关键点,然后用二维ST表回答正方形最大值。 将关键点分为上下两部分,以上为例: 从上到下依次考虑每一行,记录每一列往上最近的关键点的距离,那么最优决策具有单调性,可以分治求解。 时间复杂度$O(n^2\log n+t)$。 阅读全文
posted @ 2017-07-28 03:46 Claris 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 首先枚举出所有可能成为区间最小差值的点对$(j,i)$。 枚举每个位置作为右端点$i$,假设$a[j]>a[i]$。 找到第一个这样的$j$,那么可以将下一个$a[j]$的范围缩小到$(a[i],\frac{a[i]+a[j]}{2})$。这是因为在这之外的数要么没有$j$优,要么会被$j$考虑到。 阅读全文
posted @ 2017-07-26 01:52 Claris 阅读(455) 评论(0) 推荐(1) 编辑
摘要: 首先把相同的事件点合并,那么每个点有时间$t_i$,位置$x_i$,价值$v_i$。 考虑DP,设$f_i$表示按时间从小到大考虑每个事件,目前位于事件$i$的时间与位置时,最多能让多少个事件发生。在$t_i$秒初对方不能碰到$i$,但在这一秒结束结算时,对方可以碰到$i$。 则$f_i=\max( 阅读全文
posted @ 2017-07-24 02:27 Claris 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 考虑2-SAT建图,设$a[i][0..1]$表示$i$变不变,$b[i][0..1]$表示$i$是下降还是上升。 首先相邻的不能同时动,说明$a[i]$和$a[i+1]$里最多选一个。 对于$x$和$y$要相等,假设$s[x]\geq s[y]$。 $1.$若$s[x]-s[y]=3$,则视为$1 阅读全文
posted @ 2017-07-16 04:50 Claris 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 假设删除的边是$(u,v)$,分两种情况讨论: $1.$删除$(u,v)$之后$(u,v)$不再连通,那么说明$(u,v)$是图的桥,同时整个图都要是二分图。 $2.$删除$(u,v)$之后$(u,v)$依然连通,那么图不能是二分图,但是删除$(u,v)$之后必须要是二分图,这说明$(u,v)$位于 阅读全文
posted @ 2017-07-15 13:12 Claris 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 考虑头部,一定是能向前就向前,因此是最左边的腿往右$b-1$个位置。 头部移动之后,腿部就要相应地移动到区间内最靠右的$l$个$1$之上。 若头部和腿部都不能移动,检查是否到达终点即可。 用前缀和以及对前缀和做映射来支持查询。 时间复杂度$O(n)$。 阅读全文
posted @ 2017-07-14 03:52 Claris 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 首先如果最大匹配不足$n$个那么显然每条边都不可能在匹配为$n$的方案中。 对于一条边$(u,v)$,如果它可能在最大匹配中,有两种情况: $1.(u,v)$是当前方案的匹配边。 $2.$可以沿着$(u,v)$进行增广,那么在残余网络中$u$在$v$在一个环中,即属于同一个强连通分量。 因为源点不存 阅读全文
posted @ 2017-07-14 02:22 Claris 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 首先将合成树展开,得到一棵不超过$m(m\leq 10^6)$的有根树。 问题等价于,不休息地访问所有点,访问每个点需要时间$t_i$,价值为$v_i$。 设$vis_i$为访问$i$点的时间(不含$t_i$),最大化$\sum t_i\times v_i$。 根据排序不等式可得,需要按照$\fra 阅读全文
posted @ 2017-07-11 19:02 Claris 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 枚举$T_1$的树根,然后DP,设$f[i][j]$表示$T_1$的子树$i$是否存在包括$i$的连通子树与$T_2$的子树$j$同构。 若$j$是叶子,那么显然可以。 若$deg_i<deg_j$,那么显然不可以。 否则将$i$与$j$所有互相同构的儿子之间连边,二分图匹配判断是否存在完美匹配即可 阅读全文
posted @ 2017-07-11 05:13 Claris 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 对于HARD: 需要满足$k+u[i]\times k\leq T+late[i]$。 对于EASY: 需要满足$k+u[i]\times k\leq T-rest[i]$。 所以对于HARD,设$a[i]=-late[i]$,对于EASY,设$a[i]=rest[i]$,并将所有题目的$u[i]$ 阅读全文
posted @ 2017-07-10 02:01 Claris 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 设$f[i][j][k]$表示坦克位于$(i,j)$,目前打了不超过$k$个位置的最大得分。 初始值$f[1][1][k]$为在$(1,1)$射程内最大$k$个位置的分数总和。 对于每次移动,会新增一行或者一列$O(R)$个位置,那么显然也是从大到小取。 暴力转移是$O(R)$的,不能接受,但是注意 阅读全文
posted @ 2017-07-09 01:35 Claris 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 二分答案,判断是否存在合法方案使得每个数都不超过$mid$。 考虑网络流建图: $i$点的流量下限为$\max(a_i-mid,0)$,费用为$1$,故拆点进行限制。 $i$向$i+1$、$S$向$i$、$i$向$T$连边,费用为$0$。 那么一条增广路径对应选择一个区间进行减$1$。 求出流量不超 阅读全文
posted @ 2017-07-08 05:08 Claris 阅读(172) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 38 下一页