摘要: #include #include using namespace std; const int MAXV = 1000; const int INF = 0xFFFFFFF; struct edge{ int u,v,cost; }E[MAXV]; bool cmp(edge a,edge b){ return a.cost < b.cost; } int father[MAXV]; ... 阅读全文
posted @ 2018-04-15 18:18 最美遇见你 阅读(354) 评论(1) 推荐(0)
摘要: /* Prim(G,d[]) { 初始化; for(执行n次) { u=使得d[u]最小且还没有访问的定点的编号; 记录对u的访问; for(从u出发能够到达的所有顶点v) { if(v没有访问 && 以u为中介点使得v和集合s的最短距离d[v]更优) { ... 阅读全文
posted @ 2018-04-15 17:39 最美遇见你 阅读(721) 评论(0) 推荐(0)
摘要: /* 枚举顶点k范围[1,n] 以k为中介点,枚举所有定点对i和j.i和j的范围[1,n] if(dis[i][k]+dis[k][j] #include using namespace std; const int INF = 0xFFFFFFF; const int MAXV = 200; int n,m; int dis[MAXV][MAXV]; void Flo... 阅读全文
posted @ 2018-04-15 16:05 最美遇见你 阅读(187) 评论(0) 推荐(0)
摘要: //大致的思路如下: queueq; 源点 s 入队; while(!q.empty()) { 取出队首元素u; for(u的所有邻接边u->v) { if(d[u]+disAdj[MAXV]; int n,d[MAXV],num[MAXV]; bool vis[MAXV]; bool SPFA(int s) { memset(vis,0,siz... 阅读全文
posted @ 2018-04-15 14:17 最美遇见你 阅读(225) 评论(1) 推荐(0)
摘要: 大致的算法: 实例:一般正常的没有源点可达的负环 因此判断负环的过程可以省略。 阅读全文
posted @ 2018-04-15 13:05 最美遇见你 阅读(180) 评论(0) 推荐(0)
摘要: 测试数据: 输出路径的函数使用如下更加方便: Dijkstra算法在有两条或者两条以上的最短路径可以到达同一个地方的时候,一般会给出第二个标尺。 1.边的权值 2.点的权值 3.最短的路径的个数 举例子: 给出N个城市,M条无向边。每个城市都有一定的救援小组,所有边的权值已知(此处的边权不是路径长度 阅读全文
posted @ 2018-04-15 10:47 最美遇见你 阅读(688) 评论(0) 推荐(0)
摘要: 因为我们不能总是从主类来扩展Thread类,因为java不是指出多继承的,这样就需要我们重新写一个类继承Thread,这样在主函数中直接调用就可以了。 类似的,我们可以使用Runnable类接口来实现一个线程。 阅读全文
posted @ 2018-04-15 08:06 最美遇见你 阅读(175) 评论(0) 推荐(0)