思路:先找出最短的乙個點,也就是起點,從起點出發,找最短的邊,同時標記起點為true(代表已經訪問過),訪問過的點就不用再訪問了,依次下去,保證每一次找到的邊都是最短的邊
到最後沒有邊可以更新了就代表結束
看**
#include#include#include
#include
#include
#include
#include
#include
#include
#include
#include
typedef
long
long
ll;using
namespace
std;
const ll mod=1e9+7
;const
int maxn=1e3+10
;const
int maxk=100+10
;const
int maxx=1e4+10
;const ll maxe=1000+10
;#define inf 0x3f3f3f3f3f3f
intv,e;
ll cost[maxn][maxn];
//cost[u][v]代表邊(u,v)的權值
ll d[maxn];//
從起點出發到該點的最小距離
bool
vis[maxn];
void solve(int
s) memset(vis,
false,sizeof
(vis));
d[s]=0
;
while(true
)
if(flag==-1
)
break
; vis[flag]=true
;
for(int i=0;i)
}for(int i=0;i)
cout
<"";
cout
<}int
main()
inta,b,va;
for(int i=0;i)
solve(0);
return0;
}
matlab 求點到任意直線的投影點座標
寫在前面 因為影象座標系和我們平時用的直角座標系還是有不同的。因此在求點到直線投影點座標的時候,不敢隨便把直線用點斜式表示。為此採用向量的方法求投影點。function proj point projpoint point,line p x1 line p 1 y1 line p 2 x2 line...
直線外一點到直線的距離
已知直線上兩點求直線的一般式方程 已知直線上的兩點p1 x1,y1 p2 x2,y2 p1 p2兩點不重合。則直線的一般式方程ax by c 0中,a b c分別等於 a y2 y1 b x1 x2 c x2y1 x1y2 直線外一點到直線的距離 p 的座標為 xo,yo 則點 p 到直線 l 的距...
Dijkstra演算法求兩點最短路徑
對於下圖使用dijkstra演算法求由頂點a到頂點h的最短路徑,按實驗報告模板編寫演算法。選取乙個起始點加入集合a,剩餘點加入集合b 計算集合b中的點到初始點的距離dis i 若不相鄰的距離無窮大,否則為權值 選取最小的dis i 計為dis x 並將點x加入集合a 更新和點x相鄰的點y的dis值 ...