关注
第二题,每个结点 U 到子树中某结点 V 的最大边权和,有大佬帮我看看吗? import java.util.*;
public class Main {
static int [] dparray_weight; //每个结点 U 到子树中某结点 V 的最大边权和
static int [][] tree_edge; //记录边的权值
static int n; //结点个数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = Integer.valueOf(sc.nextLine());
tree_edge = new int[n][n];
dparray_weight = new int[n];
init_tree_edge(); //初始化边矩阵,自己到自己为0,其余为int的最大值
//保存输入的边
for(int i=1;i<n;i++){
String[] temp = sc.nextLine().split(" ");
int u = Integer.valueOf(temp[0])-1;
int v= Integer.valueOf(temp[1])-1;
tree_edge[u][v] = Integer.valueOf(temp[2]);
}
dp_weight(0);
for(int i=0;i<n;i++)
System.out.print(dparray_weight[i]+" ");
}
public static int dp_weight(int index){
if( isleaf(index) ){
dparray_weight[index]=0;
return dparray_weight[index];
}
for(int j=0;j<n;j++)
if( j!=index && tree_edge[index][j] != Integer.MAX_VALUE ) //index到j有一条边
dparray_weight[index]=Math.max(dparray_weight[index], dp_weight(j)+ tree_edge[index][j]);
return dparray_weight[index];
}
public static boolean isleaf(int index){ //结点下标为index的结点是不是叶子结点
boolean flag =true;
for(int j=0;j<n;j++)
if( tree_edge[index][j] != Integer.MAX_VALUE && index!=j){
flag = false;
break;
}
return flag;
}
public static void init_tree_edge(){
for(int i=0;i<n;i++)
for (int j=0;j<n;j++)
if(i==j)
tree_edge[i][j]=0;
else
tree_edge[i][j]= Integer.MAX_VALUE;
}
public static void print_array(){
for(int i=0;i<n;i++){
for (int j=0;j<n;j++)
System.out.print(tree_edge[i][j]+" ");
System.out.println();
}
}
}
查看原帖
点赞 2
相关推荐
投递阿里云等公司10个岗位
点赞 评论 收藏
转发
投递携程等公司9个岗位 >
点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
529181次浏览 9010人参与
# 晒一晒我的offer #
3047349次浏览 51637人参与
# 简历中的项目经历要怎么写 #
402244次浏览 6729人参与
# 在国企工作的人,躺平了吗? #
81427次浏览 1039人参与
# 如何写一份好简历 #
234895次浏览 3633人参与
# 你的简历改到第几版了 #
280866次浏览 4314人参与
# 我想象的工作vs实际工作 #
82586次浏览 1435人参与
# 春招你拿到offer了吗 #
339082次浏览 5067人参与
# 学历贬值真的很严重吗? #
5761次浏览 74人参与
# 你已经投递多少份简历了 #
268391次浏览 4142人参与
# 我的实习日记 #
397962次浏览 7240人参与
# 联想求职进展汇总 #
48245次浏览 687人参与
# 百度工作体验 #
21155次浏览 225人参与
# 找工作时遇到的神仙HR #
164418次浏览 1682人参与
# 机械人,你的秋招第一份简历被谁挂了 #
28930次浏览 518人参与
# 最后再改一次简历 #
775574次浏览 11023人参与
# 如何判断面试是否凉了 #
910332次浏览 13980人参与
# 实习,投递多份简历没人回复怎么办 #
902759次浏览 16095人参与
# 浅聊一下我实习的辛苦费 #
75100次浏览 697人参与
# 我发现了面试通关密码 #
299657次浏览 5728人参与