上一页 1 ··· 6 7 8 9 10 11 下一页
摘要: 一般只能优化掉最外面的一维(当计算状态只用当前和上一行的时候)。 因为外层循环是不会回头的,i单调递增,但是内层循环j会到m之后在下一次循环又变回1,也就是说,要反复用到f[...][1],不能滚动数组。 注意:这是与程序具体实现算法时的内外层循环有关的,如果内外层循环可以交换,那么就按照新的顺序看 阅读全文
posted @ 2023-04-14 21:32 Zlc晨鑫 阅读(28) 评论(0) 推荐(0)
摘要: 网络流的基本概念 做题方法:先将原问题转化成网络流模型,再检验图是否和原问题等价。 流网络:一张有向图,图中可以存在环,有一个源点和一个汇点。打个比方,源点相当于出水口,边相当于水管,汇点相当于能够容纳无穷多水的大海,边的容量 \(c(u,v)\) 就是水管每秒能够通过的最多的水量,也就是一个限制。 阅读全文
posted @ 2023-01-07 18:21 Zlc晨鑫 阅读(19) 评论(0) 推荐(0)
摘要: 树状数组: P1972 [SDOI2009] HH的项链 阅读全文
posted @ 2022-12-11 10:22 Zlc晨鑫 阅读(35) 评论(0) 推荐(0)
摘要: FHQ Treap 按值分裂时,不要把if (tr[tr[u].l].size + 1 <= size)写成if (tr[u].size + 1 <= size)。 pushup的时候,记得加上if (!u) return ;防止出现边界错误。 查询值的排名的时候,是size(x) + 1,不要忘记 阅读全文
posted @ 2022-12-05 20:43 Zlc晨鑫 阅读(46) 评论(0) 推荐(0)
摘要: 引入 随便给出一组数据: 5 3 1 2 4 初始逆序对数量: $6$。 冒泡排序 一轮:3 1 2 4 5 $6-4=2$。 两轮:1 2 3 4 5 $2-2=0$。 逆序对块 观察会发现,数 $x$ 会一直后退,直到有一个大于 $x$ 的数 $y$,$y$ 也会一直后退…… 后退数将区间划分成 阅读全文
posted @ 2022-11-25 08:24 Zlc晨鑫 阅读(80) 评论(0) 推荐(0)
摘要: 假期计划 做法:维护$f(i,k)$为$i$和$1$能到的点中权值第$k$大的($k \in [1,4]$)。设四个景点按照访问顺序分别为$a, b, c, d$,枚举 $b$ 和 $c$,$a$和$d$分别从$f(b)$和$f(c)$中枚举,满足四个都不相等即可更新答案。 最坏情况下,$a$枚举了 阅读全文
posted @ 2022-11-20 21:36 Zlc晨鑫 阅读(44) 评论(0) 推荐(0)
摘要: 以后写无向图最好都记录一下来边from,不要记录father,因为前者更有通用性。 对于一个点双连通分量$G$,除非该连通子图只有一个点,否则$G$至少有两个点。 证明: 只有一个点的情况,显然 $|G|=1$。 如果点数至少有两个: 随便取两个点,构成一个子图$E$。 根据定义,删去给图中任意一个 阅读全文
posted @ 2022-11-10 21:30 Zlc晨鑫 阅读(35) 评论(0) 推荐(0)
摘要: 有向图 判断环是否存在: 使用拓扑排序,如果n个点全部入队并出队,说明图是个DAG;如果没有完全入队,说明有环。因为有环的话,就会有点的入度一定不为0。 判断正/负环: 图的权值$w \in (-\infty,0]$或者$w \in [0, +\infty)$。可以对图求强连通分量(Tarjan), 阅读全文
posted @ 2022-11-10 19:00 Zlc晨鑫 阅读(95) 评论(0) 推荐(0)
摘要: 这道题,如果使用二分加判环,会变得十分简单。 但是如何做到线性复杂度呢? 答案是广搜时同时统计答案,因为环的形成肯定是一个个扩散出去的。 细节: 关于为何$bfs$第一个出来的不是正确解: $dist[u]$一定是最小的,但是$dist[v]$却不一定,根据三角不等式,$dist[v] \le di 阅读全文
posted @ 2022-11-10 18:51 Zlc晨鑫 阅读(75) 评论(0) 推荐(0)
摘要: #include <cstdio> #include <iostream> using namespace std; void test0() { for (int i = 1; i <= 3; i ++ ) { static int sum = 0; sum ++ ; printf("%d\n", 阅读全文
posted @ 2022-11-08 15:02 Zlc晨鑫 阅读(398) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 下一页