Java P1807 最长路

题目链接
bfs,图论最长,不是以往的最短

**import java.util.*;
import java.math.*;
public class Main {
	public static int n,m,res=0;
	public static int[] price;
	public static int[][] quan;
    public static void main(String[] args){
    	Scanner sc=new Scanner(System.in);
    	n=sc.nextInt();
    	quan=new int[n+1][n+1];
    	price=new int[n+1];
    	Arrays.fill(price,-1);
    	price[1]=0;
    	m=sc.nextInt();
    	for(int i=0;i<m;i++){
    		int a=sc.nextInt();
    		int b=sc.nextInt();
    		int c=sc.nextInt();
    		quan[a][b]=Math.max(quan[a][b],c);
    	}
    	bfs();
    	System.out.println(price[n]);
    }
    public static void bfs(){
    	Queue<Integer> q=new LinkedList<Integer>();
    	q.offer(1);
    	while(!q.isEmpty()){
    		int cur=q.poll();
    		for(int i=1;i<=n;i++){
    			if(quan[cur][i]!=0&&price[i]<price[cur]+quan[cur][i]){
    				price[i]=price[cur]+quan[cur][i];
    				q.offer(i);
    			}
    		}
    	}
    }
    
}

**

上一篇:【每日蓝桥】51、一七年省赛Java组真题“分巧克力”


下一篇:java学习笔记--java中Scanner是基本使用