摘要: 给定无向连通图: 对于其中一点 $u$,若从图中删掉 $u$ 和所有与 $u$ 相连的边后,原图分裂成成 $2$ 个或以上不相连的子图,则称 $u$ 为原图的割点(或割顶)。 对于其中一边 $e$,若从图中删掉 $e$ 后,原图分裂成 $2$ 个或以上不相连的子图,则称 $e$ 为原图的桥(或割边) 阅读全文
posted @ 2021-08-07 18:12 mango09 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 前言 总体评价: \(\rm T1\):签到题,用桶乱♂搞♂ 然而机房一堆人爆零 \(\color{Red}{评分:10}\) \(\rm T2\):思维题,思路清奇 为什么我的 \(50\) 分暴力爆零了??? \(\color{Red}{评分:60}\) \(\rm T3\):缩点乱搞 \(\c 阅读全文
posted @ 2021-08-07 18:11 mango09 阅读(39) 评论(0) 推荐(0) 编辑
摘要: P3387 【模板】缩点 缩点,即把一张有向有环图中的 \(\rm SCC\) 都缩成一个个点,形成一个 \(\rm DAG\)。 对于本题,若一个点被选到了,则该点所在的 \(\rm SCC\) 中的所有点都可以选到,那当然都要选了。 老师:天上掉馅饼,我不选! 杠精:我偏不选! 所以,我们可以直 阅读全文
posted @ 2021-08-07 18:10 mango09 阅读(167) 评论(0) 推荐(0) 编辑
摘要: B3609 [图论与代数结构 701] 强连通分量 一些概念: 若一张有向图中任意两个节点 \(x,y\),存在 \(x\) 到 \(y\) 的路径和 \(y\) 到 \(x\) 的路径,则称其为强连通图; 有向图的极大强连通子图被称为强连通分量。 在上文中,一个强连通子图 \(G'=(V',E') 阅读全文
posted @ 2021-08-07 18:09 mango09 阅读(349) 评论(0) 推荐(0) 编辑
摘要: P3979 遥远的国度 本题需要支持 $3$ 个操作: 把根修改为 $id$; 将 $x;y$ 路径上的所有点权修改为 $v$; 询问以 $x$ 为根的子树中的最小点权。 看到这道题,第一思路就是对于每个操作 $1$,换根后重新剖一遍。但时间复杂度为 $\operatorname{O}(qn)$!~ 阅读全文
posted @ 2021-08-07 18:08 mango09 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 树链剖分是把一棵树分割成若干条链,以进行树上操作的一种方法。树链剖分有很多种类,本文主要介绍最常用的重链剖分。 重链剖分 一、定义 一个节点的子节点中子树大小最大的为重子节点,其余节点为轻子节点。特别地,若有多个子节点的子树大小相等,则在其中任选一个作为重子节点,其余为轻子节点。 一个节点到其重子节 阅读全文
posted @ 2021-08-07 18:07 mango09 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题意简述 给定一个整数数组 \(a_1,a_2,\cdots,a_n\),计算满足条件的无序三元对 \(i,j,k\) 的数量,使得 \(a_i+a_j+a_k=0\)。 本题思路 首先要注意的是,由于 \(-10^6\le a_i\le10^6\),所以我们需要给 \(a\) 数组集体加 阅读全文
posted @ 2021-08-07 18:05 mango09 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 前言 变态题。调了三四天才调出来。 如果最小生成树选择的边集是 \(E_M\),严格次小生成树选择的边集是 \(E_S\),那么需要满足:(\(\operatorname{value}(e)\) 表示边 \(e\) 的权值)\(\sum_{e\in E_M}\operatorname{value}( 阅读全文
posted @ 2021-08-07 18:04 mango09 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 最近公共祖先(\(\rm Least\,Common\,Ancestors\)),简记为 \(\rm LCA\)。顾名思义就是一棵树中的某两个节点的公共的祖先中离他们最近,即深度最大的那个。 举个例子: 上图中 \(8\) 和 \(6\) 的 LCA 就是 \(1\)。 那么怎么求 LCA 呢? 1 阅读全文
posted @ 2021-08-07 18:03 mango09 阅读(354) 评论(0) 推荐(0) 编辑
摘要: Link 考试的 B 题。 不难想到 DP。(然鹅我没想到 qwq) 我们先将数组进行一个神奇的处理,以样例为例: \(a={1,2,3,4}\to a'={1,2,2,3,3,3,4,4,4,4}\) \(b={4,3,2,0}\to b'={1,1,1,1,2,2,2,3,3}\) 这时就变成了 阅读全文
posted @ 2021-08-07 18:01 mango09 阅读(33) 评论(0) 推荐(0) 编辑
摘要: Link 考试的 D 题。 题意 有 \(n\) 个数和 \(m\) 个操作,每次操作有三个整数 \(k,l,r\) k = 0:给 \([l,r]\) 中的每个数开平方根(向下取整) k = 1:询问 \([l,r]\) 中各个数的和。 思路 标签:并查集、分块???不会…… 我们用朴素的线段树。 阅读全文
posted @ 2021-08-07 17:56 mango09 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 传送门 题意 一个 \(n\times m\) 的矩阵,从 \((1,1)\) 走到 \((n,m)\)。 在 \((x,y)\) 时: 走向 \((x,y+1)\),获得 \(x\) 分; 走向 \((x+1,y)\),获得 \(y\) 分。 问是否可以在走到终点时恰好获得 \(k\) 分。 思路 阅读全文
posted @ 2021-08-07 17:54 mango09 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 1.什么是 RMQ & ST? RMQ 是一种区间最值查询的问题,我们珂以用线段树或树状数组来解决,但今天我们要用的是——ST表。 要注意的是,ST表只珂以用于静态区间求最值,而动态区间就只能用线段树或树状数组了。 2.ST 算法思想简述 ST 算法使用了 DP 的思想。 我们用 \(f(i,j)\ 阅读全文
posted @ 2021-08-07 17:52 mango09 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题目链接 思路:拓扑排序 对于牛奶来说,最多只有一种方式从一个接口流到另一个接口。 则不会有牛奶分开又聚到一起,故有一个性质:除非节点的入度 \(=0\),否则任何出度 \(>1\) 的节点的子节点都不能放置混合器。 然后跑拓扑排序即可。 代码 #include <iostream> #includ 阅读全文
posted @ 2021-08-07 17:52 mango09 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路 当一头奶牛左边D距离内而且右边D距离内有身高至少是它的两倍的奶牛 不难想到使用单调队列(机房大佬Canstant0x5F3759DF使用的线段树我是不会) 从左到右、从右到左各扫一遍即可。 代码 #include <iostream> #include <cstdio> #includ 阅读全文
posted @ 2021-08-07 17:50 mango09 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 原题链接 思路 考场上直接模拟 TLE 50 分,得换一个方法。 为方便描述,记蓝球为 B,红球为 R; 我们定义 \(f_i\) 为把深度 \(i\) 的 \(a_i\) B 变成 R 的操作数,那么在变色之前 \(a_i\) 一定前面的都是 R 。 那么变色之前的最后一步显然是将上面所有的 R 阅读全文
posted @ 2021-08-07 17:49 mango09 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 传送门 前言:一道大水难题! 题意 给出 \(n\),要用最小的刀数将蛋糕分成相等的 \(n\) 份(一份中可以包含多块)。 注意:每次切蛋糕时只能沿着直径切下。 思路 \(n=1\) 时答案为 \(0\)。 切一刀多 \(2\) 块,则当 \(n\) 形如 \(2k\) 时至少切 \(k\) 刀; 阅读全文
posted @ 2021-08-07 17:48 mango09 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题意 输入 \(n,k\),输出 \(n\) 个四元组满足以下条件: 四元组中任意两个数的最大公约数是 \(k\); 四元组内没有重复的数 要求 \(n\) 个四元组内最大的数最小。 第一行输出最大的数,下面 \(n\) 行输出四元组。 思路 若 \(k\ne1\),可以把四元组中的 \( 阅读全文
posted @ 2021-08-07 17:47 mango09 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 传送门 前言 这真的是我见过的代码最短的紫题了! 但是正解并不好想,构造过程很奇特。 下面进入主题 我们设 \(f(n)\) 表示自然数 \(n\) 的数字和。 不难发现,当 \(n\le10^{18}\) 时有一个性质: \(\boxed{f(n + 10^{18})=f(n)+1}\) 设 \( 阅读全文
posted @ 2021-08-07 17:47 mango09 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是树状数组? 树状数组是一个查询和修改复杂度都为 \(\operatorname{O}(\log n)\) 的数据结构。 看到这句话是不是想到了线段树? 是的! 但是,凡是可以使用树状数组解决的问题, 使用线段树一定可以解决, 但是线段树能够解决的问题树状数组未必能够解决。 哦,那还是用线 阅读全文
posted @ 2021-08-07 17:46 mango09 阅读(70) 评论(0) 推荐(0) 编辑
-->