随笔分类 - 图论-----生成树
摘要:无法直观的想到这个结论,懂的大佬可以教教我吗?
阅读全文
摘要:一、题目 点此看题 二、解法 首先不难想到 \(30\) 分的 \(dp\) 做法,设 \(f[i][j]\) 表示 \((i,j)\) 之间是否存在回文路径, 考虑初始化 \(f[i][i]=1\),若 \((u,v)\) 同色且有边则 \(f[u][v]=1\),那么类似 \(\tt bfs\)
阅读全文
摘要:一、题目 点此看题 二、解法 考虑把原过程逆序,这样捐赠 \(b_i\) 就变成获得(贪污) \(b_i\) 元,经过一个点的条件是现有的钱数 \(\geq \max(a_i-b_i,0)=c_i\)(其实 \(a_i-b_i\) 是一个很重要的量,虽可以通过其他方式得出但不好继续走下去) 那么如果
阅读全文
摘要:星际航道 题目描述 给定一个 \(n\times m\) 的网格图,边有边权,初始边权都是 \(0\),有 \(q\) 次修改,每次修改一条边的边权,问修改后网格图的最小生成树是多少,强制在线。 \(n\times m\leq 10^5,q\leq 2\cdot 10^5\) 解法 重点在于考察网格
阅读全文
摘要:矩阵树 题目描述 给定一个 \(n\) 个点的无向完全图,其中边 \((i,j)\) 的个数是 \(a(i,j)\);有 \(k\) 个要求,第 \(i\) 个要求是点集 \(S\) 的导出子图要连通,问满足条件的生成树个数,答案对 \(998244353\) 取模。 \(n\leq 500,k\l
阅读全文
摘要:一、题目 点此看题 二、解法 这篇博客主要记录我的感性理解,相信能帮助你直观地理解 \(\tt BEST\) 定理。 首先对于一条欧拉路径,我们考虑保留每个点的最后一条出边。可以证明出边一定构成一棵内向树,我们只需要证明不会构成环,而如果构成环,考虑走完环的最后一条出边一定会停留在这个点,那么就无法
阅读全文
摘要:D. Serious Business 题目描述 有一个 $3\times n$ 的矩阵,我们要从 $(1,1)$ 走到 $(3,n)$,每经过一个格子就会获得对应的权值。初始时第二行时不能经过的,有 $m$ 个活动,第 $i$ 个活动可以花费 $k_i$ 的代价把 $[L_i,R_i]$ 的格子解
阅读全文
摘要:Walking 题目描述 点此看题 解法 首先考虑转化问题:我们可以把原序列划分成若干个 \(01\) 交替的子序列,然后再把 \(01\) 子序列交替拼起来,要求最小化 \(01\) 子序列的数量。 如果不考虑第二问,那么可以贪心地划分,假设现在要加入 \(1\),如果有结尾为 \(0\) 的子序
阅读全文
摘要:A 题目描述 定义长度为 \(n\) 的好串 \(s\) 满足: \(|s_i-s_{i-1}|=1,i\in[2,n]\) \(s_i\geq\frac{s_{i+1}+s_{i-1}}{2},i\in[2,n-1]\) 给你长度为 \(n\) 的序列 \(a\) 和 \(v\),分别表示原序列和
阅读全文
摘要:一、题目 我们认为 \(x\rightarrow y\) 的简单路径是好的,当且仅当路径上的点最小的是 \(x\),最大的是 \(y\) 给出一棵 \(n\) 个点的树,求出好的简单路径条数。 \(n\leq 2\cdot 10^6\) 二、解法 很容易写出暴力点分治,但是因为需要解决二维偏序问题所
阅读全文
摘要:一、题目 点此看题 二、解法 我自己做的时候用 \(\tt Boruvka\) 加点分治,一直 \(\tt T\) 三个点根本卡不过去。 其实可以直接点分治,因为我们只要考虑了每条路径就考虑了每条边,那么对于每个分治中心,我们求出子树内到中心点的距离 \(dis[i]\),记 \(p[i]=w[i]
阅读全文
摘要:一、题目 两棵 \(n\) 个点的有根树,\(1\) 是这两棵树的根,这两棵树中叶子个数相等。 然后对于第一棵树的每一个叶子找出不同的第二棵树的叶子与之配对,连上 \(+\infty\) 的边。 找到删除边的边权和最小的删边方案使得: 两棵树根不连通。 两棵树所在联通分量是一棵树。 两棵树的并集是全
阅读全文
摘要:一、题目 点此看题 二、解法 显然是连通性问题,直接最小生成树不好做,可以考虑 $\tt kruskall$ 重构树。 首先考虑 $x,y$ 能相互到达的充要条件,其实除了连通块是链的情况,都可以到达。转化一下就是连通块中存在度数大于等于 $3$ 的点或者边数大于等于点数。 我们把边权从小到大排序然
阅读全文
摘要:D. Excellent Arrays 题目描述 点此看题 对于一个长度为 \(n\) 的数组 \(a\),定义 \(F(a)\) 为满足 \(1\leq i<j\leq n\) 且 \(a_i+a_j=i+j\) 的二元组个数。 求有多少满足下列条件的数列 \(a\): 对于所有 \(a_i\),
阅读全文
摘要:一、题目 点此看题 二、解法 你感觉这道题有点像生成树模型,但是因为边有方向所以麻烦。 可以巧妙地转化成无向生成树模型,我们把 \((i,j)\) 之间边的权值设置成 \(a_i+a_j\),那么如果是 \(i\) 把 \(j\) 拉进连通块,我们多算了 \(a_j\),如果是 \(j\) 把 \(
阅读全文

浙公网安备 33010602011771号