PS:求最长路只需把权值变为相反数 PS 2:有些题目对路径有额外要求,只需应用动态规划的思想在dis数组上加维以表示条件 SPFA 前向星 cpp include include include include include using namespace std; const long lon ...
分类:
其他好文 时间:
2018-07-08 23:05:08
阅读次数:
205
本文转自acdreamers的博客 原文网址: https://blog.csdn.net/ACdreamers/article/details/16902023 我们首先来看一下什么是前向星. 前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到 ...
分类:
其他好文 时间:
2018-07-08 12:40:53
阅读次数:
286
题意: 给出一棵树,两种操作: 1.求出a到b的距离; 2.修改某一条边的权值。 思路: 可以用树链刨分(我不会 首先,求a到b的距离,因为有很多组询问,所以必须得用lca解决 ans = dis[a] + dis[b] - 2 * dis[lca(a,b)] dis是这个点到根的距离 修改某一条边 ...
题意要求跑最小生成树,然后求出任意两点距离的期望。 做法是用Kruskal算法并用前向星存最小生成树,然后用dfs得出期望。 代码 ...
分类:
其他好文 时间:
2018-06-09 00:00:19
阅读次数:
237
「模板」 割点 "" 不会点双导致的 APIO 完挂。 本应该联赛前学的东西,不及时学,就只有等到变回联赛选手后再学了吧。 以及,以后放弃链式前向星,存图一律指针邻接表。 cpp include include using std::min; const int MAXN=100010; bool ...
分类:
其他好文 时间:
2018-05-15 19:35:34
阅读次数:
158
深度理解链式前向星 链式前向星的构成由一个结构体(包括目标点、边权值和下一个同起点的边)和head数组(用于存放某点的第一条出边) 必要的时候还可以添加一个统计入度的数组,因为进行BFS DFS的时候是依靠点的出度和出边的邻接关系来进行的。假如有多于一个点的入度为0,那么将只能遍历到其中一个点以及往 ...
分类:
其他好文 时间:
2018-04-25 22:15:09
阅读次数:
966
题目描述 无向连通图G 有n 个点,n - 1 条边。点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 。图上两点( u , v ) 的距离定义为u 点到v 点的最短距离。对于图G 上的点对( u, v) ,若它们的距离为2 ,则它们之间会产生Wu×Wv 的联合权值。 请 ...
分类:
其他好文 时间:
2018-04-21 21:20:07
阅读次数:
159
int head[2*N]; struct Edge{ int to,next,w; }; Edge edge[N]; void add(int u,int v,int w){ edge[cnt].w=w;edge[cnt].to=v;edge[cnt].next=head[u];head[u]=c... ...
分类:
其他好文 时间:
2018-04-21 14:21:56
阅读次数:
115
(1) 最简单的4^10*N的枚举(理论上20%) (2) 优化优化200^3*N的枚举(理论上至少50%) (3) Dfs优化状压dp O(我不知道,反正过不了,需要再优化)(理论上80%) (4) 再剩下的,卡常数+卡常数+一个小优化(自己想吧,有可能被卡一个点) (5) 如果还没有过,dfs中 ...
分类:
其他好文 时间:
2018-04-20 16:02:21
阅读次数:
134
马上要去西安打邀请赛了,存下板子 首先是vector存图的: 不会链式前向星,存个链式前向星的数剖板子,免得碰到要用的时候装死 ...
分类:
其他好文 时间:
2018-04-16 20:35:22
阅读次数:
166