题目:http://118.190.20.162/view.page?gpid=T44
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <memory.h>
using namespace std;
int n,m;
int cost[10005];
int dis[10010];
vector<pair<int,int>> E[100005];
int main() {
memset(dis,0x3f3f3f, sizeof(dis));
cin>>n>>m;
for(int i=0;i<m;i++){
int a,b,c;
cin>>a>>b>>c;
E[a].push_back(make_pair(b,c));
E[b].push_back(make_pair(a,c));
}
queue<int> q;
dis[1]=0;
q.push(1);
while(!q.empty()){
int now=q.front();
q.pop();
for(int i=0;i<E[now].size();i++){
int v=E[now][i].first;
if(dis[v]>dis[now]+E[now][i].second){
dis[v]=dis[now]+E[now][i].second;