import java.util.*;
class node{
int to;
int v;
int next;
int form;
}
public class hello{
static int [] head= new int [10000];
static int cnt=0;
static int [] inq = new int [10000];
static node [] e =new node[10000];
static int [] dis = new int [10000];
public static void add(int from,int to,int v)
{
++cnt;
e[cnt].to=to;
e[cnt].v=v;
e[cnt].form=from;
e[cnt].next=head[from];
head[from]=cnt;
}
public static void spfa(int now)
{
Queue<Integer> Q= new LinkedList<Integer>();
Q.offer(now);
inq[now]=1;
while(!Q.isEmpty())
{
int u=Q.poll();
for(int i=head[u];i!=0;i=e[i].next)
{
int y=e[i].to;
dis[y]=dis[u]+e[i].v;
if(inq[y]==0)
{
inq[y]=1;
Q.offer(y);
}
}
inq[u]=0;
}
}
public static void main(String[] args) {
for(int i=0;i<10000;i++)
e[i]=new node();
Scanner input = new Scanner(System.in);
int n=input.nextInt();
int start=input.nextInt();
int end=input.nextInt();
for(int i=0;i<n;i++)
{
int l,r,v;
l=input.nextInt();
r=input.nextInt();
v=input.nextInt();
add(l,r,v);
}
spfa(start);
System.out.println(dis[end]);
}
}
链式向前星是oi中常用的建图方式.
最近希望找java的实习岗位于是开始练习java.
尝试把链式向前星的做法用java来实现