把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

随笔分类 -  LOJ

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

浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示