【题目描述】Alice和Bob正在玩如下的游戏。首先Alice画一个有N个顶点,M条边的有向图。然后Bob试着摧毁它。在一次操作中他可以找到图中的一个点,并且删除它所有的入边或所有的出边。Alice给每个点定义了两个值:Wi+和Wi-。如果Bob删除了第i个点所有的入边他要给Alice付Wi+元,如...
分类:
其他好文 时间:
2014-05-16 05:00:42
阅读次数:
244
大意:小明喜欢带他的朋友们逛自己的农场。农场有n块地,屋舍位于1号,谷仓位于n号。有m条路连接这些地,路是无向的,每条路长度已知。他想设计一条线路,从1出发,到n,再回到1,且同一条路不走两遍。问最短的行程是多少。
分析:可建模为最小费用最大流。从1出发,到n,再回到1,相当于找到两条从1到n的路径且二者不能有交集。
对于每条路,费用为长度,容量为1,这样就限制了只能走一次。新建一个顶点连向1,费用为0,容量为2.,作为等价源点。同理再建一个等价汇点。
因为重边的存在,图的存储结构为邻接表而非邻接矩阵...
分类:
其他好文 时间:
2014-05-15 01:40:24
阅读次数:
366
最短路径全集
使用最短路算法。
锦囊2
使用Dijkstra算法,此图的边数比点数的平方要少很多,因此应该使用带堆优化的Dijkstra。
问题描述
给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1...
分类:
其他好文 时间:
2014-05-15 01:33:35
阅读次数:
788
有用+1编辑有向图强连通分量在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly
connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(...
分类:
其他好文 时间:
2014-05-14 22:40:02
阅读次数:
474
OpenGL中的空间变换
在使用OpenGL的三维虚拟程序中,当我们指定了模型的顶点之后,在屏幕上显示它们之前,一共会发生3种类型的变换:视图变换、模型变换、投影变换。
视图变换:指定观察者(摄像机)的位置;
模型变换:在场景中移动物体;
投影变换:改变可视区域的大小;
视口变换:这是一种伪...
分类:
其他好文 时间:
2014-05-14 14:40:16
阅读次数:
388
图的最小生成树,就是基于图,假设其有n的顶点,那么就要构建一颗连通树,使其各边权重和最小。最小生成树的实现算法主要有两种:Prim算法和Kruskal算法。本文着重介绍Prim算法及其实现,其中图的实现以及相关操作,采用前面博文C++
图的实现中的实现方式,由于本文重点在于Prim算法的实现,所有就...
分类:
其他好文 时间:
2014-05-13 19:00:53
阅读次数:
432
最近一段时间是决定好好把算法大体学一遍了。今天发现了一个有趣的定理:cayley’s theorem:
过n个有标志顶点的树的数目等于n^(n-2)。以4个nodes的树为例,应该是16个没错,然后找了好半天也没有找到能看懂的证明过程。如果有哪位有发现比较易懂的证法,欢迎和我在留言讨论。:)
分类:
其他好文 时间:
2014-05-13 18:25:06
阅读次数:
183
图的最小生成树,就是基于图,假设其有n的顶点,那么就要构建一颗连通树,使其各边权重和最小。最小生成树的实现算法主要有两种:Prim算法和Kruskal算法。Prim算法在前面已经介绍过,本文着重介绍Kruskal算法及其实现,其中图的实现以及相关操作,采用前面博文C++
图的实现中的实现方式,由于本...
分类:
其他好文 时间:
2014-05-13 18:10:36
阅读次数:
345
基本概念及定理1. 欧拉通路、欧拉回路、欧拉图无向图:1)
设G是连通无向图,则称经过G的每条边一次并且仅一次的路径为欧拉通路;2) 如果欧拉通路是回路(起点和终点是同一个顶点),则称此回路为欧拉回路(Euler
circuit);3) 具有欧拉回路的无向图G称为欧拉图(Euler graph...
分类:
其他好文 时间:
2014-05-13 11:11:13
阅读次数:
363
【题目描述】给你一张无向图G(V,E)。每个顶点都有一个标号,它是一个[0,2^31-1]内的整数。不同的顶点可能会有相同的标号。对每条边(u,v),我们定义其费用cost(u,v)为u的标号与v的标号的异或值。现在我们知道一些顶点的标号。你需要确定余下顶点的标号使得所有边的费用和尽可能小。【输入格...
分类:
其他好文 时间:
2014-05-11 18:13:16
阅读次数:
305