題目描述 :
給出一張包含n個節點m條邊的無向圖,請你求出圖上兩點s,t間的最短路徑長度(請大家自行處理重邊和自環)。
輸入 :
第一行兩個數n,m,分別表示節點數和邊數,以空格隔開。
之後m行,每行3個數u,v,w,表示點u和v間有一條權值為w的邊。
最後一行,兩個數s,t表示選擇的兩個點,以空格隔開。
輸出 :
輸出乙個數,表示s,t間最短路徑的長度。
樣例輸入:
4 31 2 6
1 3 4
2 4 2
3 4樣例輸出:
12就這道題的話,暴力就可以過,但是若是資料大一點,用前向星+spfa的寫法會好一點。
#pragma gcc optimize(3,"ofast","inline")
#pragma g++ optimize(3)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef pair pll;
typedef pair<
int,
int> pii;
typedef queue<
int> q_i;
typedef queue q_s;
typedef queue<
double
> q_d;
typedef queue q_ll;
typedef queue<
char
> q_c;
typedef priority_queue<
int> pq_i;
typedef priority_queue pq_s;
typedef priority_queue<
double
> pq_d;
typedef priority_queue pq_ll;
typedef stack<
int> s_i;
typedef stack s_s;
typedef stack<
double
> s_d;
typedef stack s_ll;
typedef stack<
char
> s_c;
typedef map m_ll_ll;
typedef map<
int,ll> m_i_ll;
typedef map<
int,
int> m_i_i;
typedef map m_s_ll;
typedef map<
char
,int
> m_c_i;
typedef map<
char
,ll> m_c_ll;
const ll inf=
0x3f3f3f3f
;#define rep(i,l,r) for(register int i=l;i<=r;i++)
#define per(i,l,r) for(register int i=r;i>=l;i--)
#define eif else if
#define n 2000005
#define mm(dp) memset(dp,0,sizeof(dp))
#define mm1(dp) memset(dp,-1,sizeof(dp))
#define mm2(dp) memset(dp,0x3f,sizeof(dp))
#define it set::iterator
#define fs(n) fixed<< setprecision(n)
//const double e=2.71828182845;
const
double pi =
acos(-
1.0)
;ll book[
50005];
typedef
struct
stu;
stu e[
50005];
int num=0;
void
add(
int x,
int y,
int z)
ll dis[
50015
],vis[
50015];
void
spfa
(int u)}}
}}intmain()
int s,t;
cin>>s>>t;
mm2(dis)
; dis[s]=0
;spfa
(s);
cout<
}
Codeup最短路徑 最短路徑
n個城市,標號從0到n 1,m條道路,第k條道路 k從0開始 的長度為2 k,求編號為0的城市到其他城市的最短距離。第一行兩個正整數n 2 n 100 m m 500 表示有n個城市,m條道路,接下來m行兩個整數,表示相連的兩個城市的編號。n 1行,表示0號城市到其他城市的最短路,如果無法到達,輸出...
Codeup最短路徑 最短路徑問題
給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離有多條路線,則輸出花費最少的。輸入n,m,點的編號是1 n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,且其長度為d,花費為p。最後一行是兩個數 s,t 起點s,...
最短路徑之最短路徑問題
提交 狀態 討論版 命題人 外部匯入 題目描述 平面上有n個點 n 100 每個點的座標均在 10000 10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路,通路的距離為兩點間的直線距離。現在的 任務是找出從一點到另一點之間的最短路徑。輸入共n m 3行,...