Dijkstra
oinei
欢迎加入菜鸡交流群:697208008
博主QQ:1119116025
展开
-
最短路径(Dijkstra)
题意:一共有N个地点,分别编号为1-N,这N个地点之间互相有一些道路连通,两个地点之间可能有多条道路连通,但是并不存在一条两端都是同一个地点的道路。算出至少要走的路程。#include <cstdio> #include <map> #include <string> #include <iostream> using namespace std; const int INF=0x3f3f3f3f,原创 2017-03-09 22:35:46 · 322 阅读 · 0 评论 -
hdu 1874 最短路径
#include <cstdio> #include <map> #include <string> #include <iostream> using namespace std; const int INF=0x3f3f3f3f,N=207; int w[N][N],vis[N],dis[N]; int main() { int n,m,s,d; while(~scanf("%d原创 2017-03-09 23:50:25 · 211 阅读 · 0 评论 -
Dijkstra(伪代码)
step 1:找出未标记过的离起点最近的点(如果没有的话,就中止算法) step 2:以该点为中心点更新该点周围的点 step 3:反复执行注意重边,初始化,编号是1-n,还是0-(n-1)原创 2017-03-09 23:59:10 · 8258 阅读 · 0 评论 -
hdu 2112
最开始顶点个数不明确 顶点从1开始编号,循环也从1开始 记得要清空map(会导致mle) 注意重边 map查询对应的关系需要logn的时间,所以当调用多次一样的变量的时候需要记录下来,可以节约时间 每次找出离起点最近的点记得标记vis[p]=1; #include <cstdio> #include <cstring> #include <map> #include <string> #includ原创 2017-03-10 18:21:37 · 221 阅读 · 0 评论 -
哈利·波特的考试 (Dijkstra)
输入格式: 输入说明:输入第1行给出两个正整数N和M,其中N是考试涉及的动物总数,M是用于直接变形的魔咒条数。为简单起见,我们将动物按1~N编号。随后M行,每行给出了3个正整数,分别是两种动物的编号、以及它们之间变形需要的魔咒的长度 输出格式: 输出哈利·波特应该带去考场的动物的编号、以及最长的变形魔咒的长度,中间以空格分隔。如果只带1只动物是不可能完成所有变形要求的,则输出0。如果有若干只动原创 2017-03-10 22:57:43 · 621 阅读 · 0 评论 -
pat 直捣黄龙 (Dijkstra)
首先时间就是生命,所以你必须选择合适的路径,以最快的速度占领敌方大本营。当这样的路径不唯一时,要求选择可以沿途解放最多城镇的路径。若这样的路径也不唯一,则选择可以有效杀伤最多敌军的路径。输入格式:输入第一行给出2个正整数N(2 ≤ N ≤ 200,城镇总数)和K(城镇间道路条数),以及己方大本营和敌方大本营的代号。随后N-1行,每行给出除了己方大本营外的一个城镇的代号和驻守的敌军数量,其间以空格分隔原创 2017-03-24 16:50:35 · 581 阅读 · 0 评论