……

随笔分类 -  图论

摘要:LCA裸题 只有代码无原理,给自己复习用 1. ST表(这题2^10就够了) 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int maxn=2e3+50; 5 6 int cnt,dfn[maxn],dep[maxn],dp 阅读全文
posted @ 2019-12-07 11:29 noobimp 阅读(229) 评论(0) 推荐(0) 编辑
摘要:一、dp(由于定义不同,有两种写法,其实dp太灵活了说有几种写法都不奇怪) 一种是记录以每个节点(u)为根,到其子树的最远叶节点的最大距离(dp[u][1])和次大距离(dp[u][0]); 这样以该节点为根的子树的直径即为dp[u][0]+dp[u][1], 对于每个节点取max即为全树的直径; 阅读全文
posted @ 2019-07-28 17:57 noobimp 阅读(1746) 评论(0) 推荐(0) 编辑
摘要:1、邻接矩阵 简单,开一个二维数组,pic[ i ] [ j ] = w 表示标号为 i 的顶点到标号为 j 的顶点有一条权值为 w 的有向边; 初始化:顶点自己到自己距离为0,不存在边设为inf; 2、邻接表 邻接表是一种对于每个顶点,用链表来存储以该点为起点的边的数据结构; 由定义知我们不需要再 阅读全文
posted @ 2019-07-22 14:10 noobimp 阅读(216) 评论(0) 推荐(0) 编辑
摘要:https://nanti.jisuanke.com/t/39280 讲道理这题写bfs求最大边权限制下从1到n的最短步数,然后二分判一下就行了。 然鹅我还是直接套了dij,一开始纠结dij能不能过,后来同学帮讲了一下发现由于二分的存在还是没问题的。 数论还没怎么学,D的dp也先不补了,窝dp奇差。 阅读全文
posted @ 2019-05-30 16:00 noobimp 阅读(238) 评论(0) 推荐(0) 编辑
摘要:好好读题嗷:“所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此同时,魔力值之和要尽可能的大。” 第一条件是生成树的最大边权更小,第二条件是在最大边权的限制下搞一个最大生成树。 至于最大生成树,如果用prime就把边权全都置负,如果用kruskal就把边权降序排列,生成的时候加一个小判断。 阅读全文
posted @ 2019-05-29 22:44 noobimp 阅读(183) 评论(0) 推荐(0) 编辑