随笔分类 - LOJ
摘要:遇事不决分个块先,然后就变成了 次整块加入和 次单点插入。 然后对于每个块,从后到前扫描线。我们希望能求出每个插入操作最晚什么时候被弹出。对于单点插入,直接查询这个位置往后 大值即可。对于整块插入,发现其最晚弹出时间是单调不增的
阅读全文
摘要:国际象棋行走方案计数
阅读全文
摘要:题面传送门 原题不卡常,但是被某个出题人搬到校内 OJ 上开了 2s 1024MB,怎么回事呢? 首先我们可以把回文改写成 ,这样只需要维护 的下 位即可。 考虑一个常见的套路,将 \([l,r]\
阅读全文
摘要:题面传送门 为啥大家都会这个科技? 首先我们有一个比较愚蠢的dp:设 表示第一个序列到第 位,第二个序列到第 位,最长公共子序列的长度。这样做是 的。 如果你做过 dp 套 dp 你应该可以发现 行差分是只有 的,我
阅读全文
摘要:题面传送门 考试的时候只想到处理的边没想到维护的路径。 首先如果没有可以退一步的限制显然就是相邻两点的最短路之和。退一步的限制想到点边互换。与处理出表示号边和号边之间的最短路,这里为了方便将其拆成有向边。这个可以用Dij加上双向链表$O(m
阅读全文
摘要:题面传送门 拼图题/fn 首先考虑先搞一个通解出来。 考虑一维的情况,显然是二分,设区间,询问和的大小关系,如果,则一定有一个局部最大值,否则一定有一个局部最大值。 再考虑扩展到二维的
阅读全文
摘要:题面传送门 奇妙的看上去不能过的题目。 首先有一个非常sb的暴力,大概就是枚举?的子集,然后统计,时间复杂度单次。 直接算没有优化空间,考虑子集容斥,先FWT预处理出表示的子集的和,然后枚举当前串的子集算答案。时间复杂度。
阅读全文
摘要:「雅礼集训 2018 Day1」树 首先发现这个期望是诈骗,我们只需要求出表示深度为的树的个数然后带权除以总方案数即可。 树的题目容易想到一个子树一个子树抠出来,设表示有个点,深度为的方案数,容易发现二号节点的父亲一定是,因此可以枚举二号节点的子树
阅读全文
摘要:题面传送门 不知道怎么评价这种题目。 首先这个变化的时间非常烦,因此先对于第个点减去就没这么多屁事。 然后左走到右还有右走到左也很烦,干脆从右往左把序列翻过来做两次就好了。 于是现在问题简化很多。我们考虑连续经过两个区间与。 如果$\max(l
阅读全文
摘要:题面传送门 看到区间除应该能自然想到势能分析。 发现如果线段树上一个区间原来的极差是,那么一次暴力递归以后极差会变成级别的东西,每次修改操作影响的只有个区间,所以暴力递归直到全区间相等的复杂度是的。 但是
阅读全文
摘要:题面传送门 奇妙的思维(技巧?)题。 发现每个物品有个,体积为,对于的物品来说,这个个数的限制是相当于没有的。所以相当于完全背包。 前面个可以暴力多重背包算方案数。 考虑后面个最多选择个。所以可以设$dp_{i,
阅读全文
摘要:题面传送门 首先好像有一道题交闹钟来着,是的版本。 考虑设左/右,另一个点在点的最小答案。 然后转移分类讨论:首先找到第一个不在区间内的位置,如果找不到直接贡献答案。 如果是这一步转移$
阅读全文
摘要:题面传送门 智商不够,自动机和数据结构来凑。 考虑对原串建出SAM,那么两个前缀的最长公共后缀就是他们在SAM上LCA的深度。 那么我们其实要求的就是一段区间内的节点在一棵树上的LCA的最大深度。 考虑离线,按照右端点排序。从左往右扫。 如果对于两个节点且,且它们在树上处于同一深
阅读全文
摘要:题面传送门 类似最大流,我们肯定要考虑在残量网络上搞事情。 对于最大流,我们是原流+残量网络上源到汇的最大流。 那么感性理解一下,最小流就是原流-残量网络上汇到源的最大流。 code: #include <vector> #include<iostream> #include<cstdio> #in
阅读全文
摘要:题面传送门 我们已经知道无源汇怎么办了,现在考虑有源汇。 可以发现除了源点和汇点都是满足流量守恒的。所以我们只要让源点和汇点流量守恒即可。 所以只要给汇点流向源点无限容量边即可。 但是这个只是一个可行流。不是最大流。 我们要想办法将其变成最大流。因为虚拟源和虚拟汇都被我流满了,所以改成在起初的源点和
阅读全文
摘要:题面传送门 这个东西看上去其实很难做。 有一个naive的想法就是把每条边的权值重新定为,然后跑最大流。 但是有一部分流量会飞掉。有一些点入流不等于出流。 这时候我们建一个超级源与超级汇。 设$cnt_u=\sum\limits_{(v,u)\in E}{low_{(v,u)}}-
阅读全文