![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
图论
文章平均质量分 85
离散世界,万物皆可图论
盖乌咪·A·埃迪尔
这个作者很懒,什么都没留下…
展开
-
Codeforces-1689 C: Infected Tree 【树形动态规划】
题目传送门:Codeforces-1689 C: Infected Tree 有一棵树,它的根节点(111 号结点)被感染了。之后每一秒都会扩散到与感染结点相邻的结点。然而在扩散前,可以删除一个与感染结点相邻的结点(去掉所有的边,包括与孩子结点的边),问最多能保存多少结点。 首先贪心是不行的,因为这个树是分层的,如果有两个子树节点数量一样,还要递归地向下比较,会很麻烦。 那么我们考虑自下而上的 dpdpdp。设 dpidp_idpi 为以 iii 为根节点(被感染)子树,做题目要求的操作,所能存下原创 2022-07-04 10:34:42 · 419 阅读 · 0 评论 -
Codeforces-1672F1: Array Shuffling
Codeforces-1672F1: Array Shuffling题目链接:Codeforces-1672F1题目题目截图样例描述题目大意 给定一个长度为 nnn 数组 aaa。现在可以对数组做一个操作,找到两个下标,并交换对应的两个元素。定义一个数组 bbb 的伤心值是将 bbb 转换为 aaa 需要的最小操作数量。目标是找到数组 bbb,使得其伤心值最大。题目解析 我们可以将某个交换序列看作图论中的一个个的环,图的顶点代表位置,边代表赋值。例如 i1→i2,i2→i3,⋯ ,i原创 2022-04-27 04:39:05 · 453 阅读 · 0 评论 -
Codeforces-166六 L: Labyrinth
Codeforces-16六六 L: Labyrinth因为 CSDN 不能用 666,所以题目加了些字符。题目链接:Codeforces-1666 L题目题目截图样例描述题目大意 给出一个 nnn 个点,mmm 条边的有向图(可能存在环),并给出一个起点 sss,目标是问是否存在两个不同的路径从起点 sss 开始,到某一终点 ttt(不同的路径指路径上的结点均不相同,即一条路径除起点和终点外,任一结点不会在另一条路径上找到)。题目解析 我们从深度优先搜索的角度考虑这个问题。众所周原创 2022-04-26 02:49:26 · 268 阅读 · 0 评论 -
Codeforces-1605 D: Treelabeling
Codeforces-1605 D: Treelabeling题目题目传送门:Treelabeling题目截图样例描述题目大意 给定一个 nnn 个结点的树,小E和小S轮流移动棋子,小E第一个下,可以下在任意的结点上。每次移动棋子,从当前结点 uuu 移动到下一结点 vvv 需要满足三个条件:u↔vu \leftrightarrow vu↔v是树上的一条边vvv 没有被访问过u⊕v≤min(u,v)u \oplus v \le \min(u,v)u⊕v≤min(u,v),⊕\op原创 2021-11-16 10:33:42 · 838 阅读 · 0 评论