您的位置:首页 > 其它

Loi_Cunese|CODEVS|1557|热浪

2016-11-15 20:59 387 查看
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>

using namespace std;
int t,C,S,e,tot=0;

struct hh
{
int f,t,c;
}a[12500];
int head[6500],jl[6500],ne[12500];
bool bo[6500];
queue<int>q;

void build(int x,int y,int z)
{
tot++;
a[tot].f=x;
a[tot].t=y;
a[tot].c=z;
ne[tot]=head[x];
head[x]=tot;
}

void f()
{
while(!q.empty())
{
int s=q.front();
q.pop();
bo[s]=0;
for(int i=head[s];i!=-1;i=ne[i])
{
int v=a[i].t;
if(jl[v]>jl[s]+a[i].c)
{
jl[v]=jl[s]+a[i].c;
if(bo[v]==0)
{
bo[v]=1;
q.push(v);
}
}
}
}
}

int main()
{
memset(head,-1,sizeof(head));
memset(jl,0x3f,sizeof(jl));
memset(bo,0,sizeof(bo));
scanf("%d%d%d%d",&t,&C,&S,&e);
int x,y,z;
for(int i=1;i<=C;i++)
{
scanf("%d%d%d",&x,&y,&z);
build(x,y,z);
build(y,x,z);
}
q.push(S);
bo[S]=1;
jl[S]=0;
f();
cout<<jl[e];
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: