题意 中文
简单的Topo排序 用vector实现邻接表比较方便
#include
using namespace std;
const int N = 1e5 + 5;
vector e[N];
vector::iterator it;
int n, m, ideg[N];
bool topo()
{
int cur;
queue q;
for(int i ...
分类:
编程语言 时间:
2015-05-25 09:58:06
阅读次数:
154
乍一看,图和树或者二叉树很像,但是采用基于对象的方式来构建就会有问题,因为图可能会增长到非常大,用对象来表示就会使效率低下。
首先我们需要定义一个图的类,其中通过adj数组来表示邻接表,也就是与节点相关联的节点数组;marked数组则是用来表示该节点是否被访问过,是在深度优先搜索和广度优先搜索中用到的。
function Graph(v){//图类
this.vert...
分类:
编程语言 时间:
2015-05-21 09:09:21
阅读次数:
135
假设无向图G采用邻接矩阵存储,编写一个算法输出邻接表。
Description
第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1),接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示邻接。
Input
输出图G的邻接表。第一行表示顶点0可直接到达的顶点编号。其他行定义相同。
Output...
分类:
其他好文 时间:
2015-05-20 22:27:43
阅读次数:
235
图的邻接表存储方式,主要由表节点与头结点组成。头结点中主要包含两个域:1)存放顶点信息 2)存放与顶点相连的第一个表节点的指针 表节点中主要包含两个域:1)存放相连的节点的序号 2)指向下一个节点...
分类:
其他好文 时间:
2015-05-18 18:27:58
阅读次数:
97
在复习匈牙利算法的时候,发现这么一篇介绍匈牙利算法的文章,非常通俗易懂,所以就借鉴过来了。 复杂度:邻接矩阵:O(v^3)邻接表:O(V*E) 附上链接:趣写算法系列之--匈牙利算法 下面就附上代码吧: int maxn;//maxn 为x、y集合的最大顶点数int xmatch[max...
分类:
编程语言 时间:
2015-05-18 10:38:53
阅读次数:
132
题意:
给出m个区间查询,查询 区间里和区间中的其他数字 都互质 的数字的个数
思路:
简单题,因为并没有 修改,全是查询
把所有查询读入,按照左端点 从左往右来处理。(原因稍后
首先预处理对于每一个位置(id)的数字,往左和往右最远到哪个位置,会出现和这个数字不互质的数字,用l[id]和r[id]保存下来。同时用邻接表(因为这么处理比较简单)保存下来对于一个位置iid,有哪个数字,它的...
分类:
编程语言 时间:
2015-05-16 16:36:59
阅读次数:
182
拓扑排序啦,就是像这样写的,邻接表好像挺好用的,不需要判断有无边,注意入度为0的一开始都放到队列里面;这题很坑的就是输入u v是指v->u而不是u->v,由题意!!! 1 #include 2 3 using namespace std; 4 5 vector graph[10005]; 6...
分类:
其他好文 时间:
2015-05-15 21:05:40
阅读次数:
192
深搜中与记录长度有关的题目,都差不多是这样的!还有邻接表的写法,不够熟! 1 #include 2 3 using namespace std; 4 5 int ans; 6 7 bool vis[10005]; 8 9 struct edge {10 int u;11 i...
分类:
其他好文 时间:
2015-05-15 06:35:30
阅读次数:
133