07 2012 档案
摘要:求一个有向图中,从所有起点(入度为0)到终点(唯一,出度为0)经过的次数最多的边经过的次数,两次拓扑排序,一次向前求出所有起点到某个点的所有路径总数f[i],一次向后,求出某个点到终点的所有路径总数g[i],则对一条边(u,v),f[u]*g[v]即为边所需要经过的次数。View Code 1 #include<stdio.h> 2 #include<string.h> 3 #define N 1005//数据范围没有题中描述的那么大…… 4 #define M 10005 5 int map[N][N]; 6 int edge[M][2]; 7 int in[N],o
阅读全文
摘要:混合图的欧拉回路问题欧拉回路问题。1 定义 欧拉通路 (Euler tour)——通过图中每条边一次且仅一次,并且过每一顶点的通路。 欧拉回路 (Euler circuit)——通过图中每条边一次且仅一次,并且过每一顶点的回路。 欧拉图——存在欧拉回路的图。2 无向图是否具有欧拉通路或回路的判定 G有欧拉通路的充分必要条件为:G 连通,G中只有两个奇度顶点(它们分别是欧拉通路的两个端点)。 G有欧拉回路(G为欧拉图):G连通,G中均为偶度顶点。3 有向图是否具有欧拉通路或回路的判定 D有欧拉通路:D连通,除两个顶点外,其余顶点的入度均等于出度,这两个特殊的顶点中,一个顶点的入度比出度大1,另一
阅读全文
摘要:这样类型的题,我觉得应该归类为递推的dp,dp[j][k]表示选j个人达到k=|D(j)-P(j)|时的最大的D(j)+P(j)并且用path[j][k]记录最后一步的选择的编号,输出的时候要对路径上的点进行一遍升序的排序。而且为了能够处理绝对值的问题,加一个修正值fix=m*20则得到的结果都在这个fix的两边,此时fix相当于坐标原点,并且这里要用到一个和修正值有关的公式设div为D(j)-p(j)+fix,我们可以从dp[j][k]里得到D(j)+P(j),则D(j)和P(j)可以用fix,div,以及dp[j][k]表示出来。View Code #include<iostream
阅读全文

浙公网安备 33010602011771号