首页 > 代码库 > 【水】java试手—poj 2387
【水】java试手—poj 2387
拿水题练下java能力,题目链接:http://poj.org/problem?id=2387
这个结果算是写炸了吧……真心感觉Java不好用(应该是我太菜了TAT)
1 import java.math.*; 2 import java.io.*; 3 import java.util.*; 4 5 class vec{ 6 int t,w,next; 7 vec(){ 8 t=0;w=0;next=0; 9 }10 }11 12 class edge{13 static int maxn=1005;14 static int maxm=1000005;15 static int inf=1000000009;16 int []head=new int[maxn];17 int []d=new int[maxn];18 vec []E=new vec[maxm];19 int ne;20 edge(){21 ne=0;22 for(int i=0;i<maxn;i++){23 head[i]=-1;24 d[i]=inf;25 }26 for(int i=0;i<maxm;i++){27 E[i]=new vec();28 }29 }30 31 void add_edge(int s,int t,int w){32 ne++;33 E[ne].t=t;34 E[ne].w=w;35 E[ne].next=head[s];36 head[s]=ne;37 }38 }39 40 public class Main {41 public static void main(String[] args) {42 Scanner cin=new Scanner(System.in);43 int n,m;44 while(cin.hasNext()){45 m=cin.nextInt(); n=cin.nextInt();46 edge G=new edge();47 for(int i=0;i<m;i++){48 int s,t,w;49 s=cin.nextInt();t=cin.nextInt();w=cin.nextInt();50 G.add_edge(s, t, w);51 G.add_edge(t, s, w);52 }53 G.d[1]=0;54 Deque<Integer> q=new LinkedList<Integer>();55 q.add(1);56 while(!q.isEmpty()){57 int now=q.pop();58 for(int i=G.head[now];i!=-1;i=G.E[i].next){59 int v=G.E[i].t;60 if(G.d[v]>G.d[now]+G.E[i].w){61 G.d[v]=G.d[now]+G.E[i].w;62 q.add(v);63 }64 }65 }66 System.out.println(G.d[n]);67 }68 }69 70 }
【水】java试手—poj 2387
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。