11 2022 档案
摘要:引入 随便给出一组数据: 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$ 也会一直后退…… 后退数将区间划分成
阅读全文
摘要:假期计划 做法:维护$f(i,k)$为$i$和$1$能到的点中权值第$k$大的($k \in [1,4]$)。设四个景点按照访问顺序分别为$a, b, c, d$,枚举 $b$ 和 $c$,$a$和$d$分别从$f(b)$和$f(c)$中枚举,满足四个都不相等即可更新答案。 最坏情况下,$a$枚举了
阅读全文
摘要:以后写无向图最好都记录一下来边from,不要记录father,因为前者更有通用性。 对于一个点双连通分量$G$,除非该连通子图只有一个点,否则$G$至少有两个点。 证明: 只有一个点的情况,显然 $|G|=1$。 如果点数至少有两个: 随便取两个点,构成一个子图$E$。 根据定义,删去给图中任意一个
阅读全文
摘要:有向图 判断环是否存在: 使用拓扑排序,如果n个点全部入队并出队,说明图是个DAG;如果没有完全入队,说明有环。因为有环的话,就会有点的入度一定不为0。 判断正/负环: 图的权值$w \in (-\infty,0]$或者$w \in [0, +\infty)$。可以对图求强连通分量(Tarjan),
阅读全文
摘要:这道题,如果使用二分加判环,会变得十分简单。 但是如何做到线性复杂度呢? 答案是广搜时同时统计答案,因为环的形成肯定是一个个扩散出去的。 细节: 关于为何$bfs$第一个出来的不是正确解: $dist[u]$一定是最小的,但是$dist[v]$却不一定,根据三角不等式,$dist[v] \le di
阅读全文
摘要:一开始的想法和这篇题解一样。 我存询问是按点存,但是他是直接按照询问编号存。 我询问的处理不好,挂了,改成了最大生成树。 简单思考一下有了一个做法:二分答案,$check(mid)$表示能否通过权值大于等于$mid$的边,使$(a,b)$联通,这样只有60分。 进而思考,考虑从大到小加边,动态维护连
阅读全文
摘要:#include <cstdio> #include <iostream> using namespace std; void test0() { for (int i = 1; i <= 3; i ++ ) { static int sum = 0; sum ++ ; printf("%d\n",
阅读全文
摘要:Solution I 先求出最小生成树$T$。 由于次小生成树$T'$一定至少有一条边与$T$不同,我们可以枚举每一条边$e \ in T$,在删去$e$的图上求最小生成树$T''$,$T''$就是原图上次小生成树$T'$。注意虽然只枚举了一条边,但是这只是保证了$e$不会被选中,其它边是可以任意选
阅读全文
摘要:P1522 [USACO2.4] 牛的旅行 Cow Tours 由于题目的N很小,且要求任意两点之间距离,很容易想到一下暴力做法: 求出题目的联通块,记id[u]为点u的连通块编号; 枚举任意两个无序点对(j从i+1开始),连接它们,用floyd算法跑出最短路,暴力求出该牧场的直径并更新答案。 该暴
阅读全文
摘要:原题链接 这题的分类讨论很恶心,主要有两种思想: 分类讨论Y年和X年降雨量是否确定的情况: 1.1 都确定; 1.2 Y年确定,X年不确定; 1.3 Y年不确定,X年确定; 1.4 都不确定。 由于false了就不能maybe和true,而true又要不maybe也不false,所以判断顺序fals
阅读全文