随笔分类 -  graph

摘要:D. Toss a Coin to Your Graph_二分+拓扑 题目大意 在图中找一个长度大于等于k的链使得其中的最大值最小。 思路和代码 很好的题目 首先,最大值的最小很容易就可以想到二分 每次在值小于等于mid的图里面做拓扑序bfs,维护ds数组,dsi表示从拓扑序起点到点i的最多点数。 阅读全文
posted @ 2022-05-17 10:26 tyrii 阅读(64) 评论(0) 推荐(0) 编辑
摘要:最近公共祖先 LCA dfs向上标记-O(n) 点A先向根搜索并标记,点B再向上搜索,第一次碰到的标记即是lca。 复杂度On,不常用 倍增法-O(logn) dep[i]表示点i的深度 up[i,j]表示从i开始向root方向走2j步数能走到的位置 若从i开始向根跳2j次会跳出根则up[i,j]= 阅读全文
posted @ 2022-05-14 15:21 tyrii 阅读(143) 评论(0) 推荐(0) 编辑
摘要:C. Tokitsukaze and Two Colorful Tapes_并查集+环 题目大意 给ab两个数组,他们均是n的排列。现在要在满足原来ai==bj的仍旧相等的条件下,重新排列ab,使得sum(abs(ai-bi))最大。 思路和代码 比较好看的就是这是一堆环。我们贪心的去给每个环一大一 阅读全文
posted @ 2022-05-13 11:53 tyrii 阅读(133) 评论(0) 推荐(0) 编辑
摘要:A. Parsa's Humongous Tree_基础树形dp 题目大意 每一个点可以选择[li,ri]中任意整数作为权值,一条边的权值是两点权值之差的绝对值。问整棵树的权值和最大是多少。 思路和代码 哎,当时转移方程我都写好了,脑袋没转过弯来。 首先,做几个样例可以得出每个点的权值必取最大或者最 阅读全文
posted @ 2022-05-11 23:49 tyrii 阅读(42) 评论(0) 推荐(0) 编辑
摘要:E. Nearest Opposite Parity_反向建图+超级源点 题目大意 给数列a,ai表示存在(i,i-ai)和(i,i+ai)两条边。每条边边权为1。现在要求出以ai出发到aj(ai和aj满足奇偶性不同的条件)的所有路径中最短的长度。 思路和代码 超级源点模板题 首先建立两个超级源点。 阅读全文
posted @ 2022-05-11 15:59 tyrii 阅读(45) 评论(0) 推荐(0) 编辑
摘要:D. Cycle in Graph_找环 题目大意 给一个图,每个点至少和其他k个点连接,现要求找出一个含有至少k+1个点的环。 思路和代码 每个点都和其他至少k个点连接,图十分稠密。所以从任意点出发都可以搜索到题目要求的环。 int n , m , k ; int path[N] , cnt ; 阅读全文
posted @ 2022-05-11 15:58 tyrii 阅读(27) 评论(0) 推荐(0) 编辑
摘要:A. Timofey and a tree_思维 题目大意: 给一颗无根树,现要选出一个节点作为根,使得其所有子树的节点颜色分别相同。问是否可能。 思路和代码: 一开始看到只有单组数据,试了试暴力做法,即将每个点都试做根,跑一遍搜索。但是这样做会T。 bool dfs(int now , int p 阅读全文
posted @ 2022-05-11 15:57 tyrii 阅读(26) 评论(0) 推荐(0) 编辑
摘要:E. Cover it!_ 黑白染色 题目大意 给一个n点m边的图,现在要挑出floor(n/2)个点,使得未选择点到被选择点的路径中至少有一条长度为1 。 思路和代码 简单的黑白染色 vct<int> eg[N] ; int clr[N] ; void dfs(int now , int pre) 阅读全文
posted @ 2022-05-11 15:57 tyrii 阅读(17) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示