关注
//考完试才做出来,自己写了几个例子试了一下是对的,不知道有没有更高效的思路 import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Scanner; import java.util.Set; public class Main { static class Result{ int back; int notback; public Result(int back,int notback){ this.back = back; this.notback = notback; } } static class Pair{ int p1,p2; public boolean contains(int s){ return p1==s||p2==s; } public Pair(int p1,int p2){ this.p1 = p1; this.p2 = p2; } public int another(int p){ if (p==p1){ return p2; }else return p1; } } public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); s.nextLine(); Set<Pair> pool = new HashSet<Pair>(); for (int i=0;i<n-1;i++){ String[] temp = s.nextLine().split(" "); pool.add(new Pair(Integer.parseInt(temp[0]),Integer.parseInt(temp[1]))); } //System.out.println(pool.size()); System.out.println(func(1,pool).notback); } private static Result func(int i, Set<Pair> pool) { Set<Pair> connted = connected(pool,i); if (connted.size()==0){ //System.out.println(i+","+"0,0"); return new Result(0,0); } pool.removeAll(connted); int m =0,n=0; List<Result> results = new ArrayList<Result>(); for (Pair p:connted){ int v = p.another(i); Result r = func(v,pool); results.add(r); } int max = 0; for (Result result:results){ m += result.back + 2; if (result.back-result.notback>max){ max = result.back-result.notback; } } n = m -max -1; //System.out.println(i+","+m+","+n); return new Result(m,n); } private static Set<Pair> connected(Set<Pair> pool,int target){ Set<Pair> ret = new HashSet<Pair>(); for (Pair p:pool){ if (p.contains(target)){ ret.add(p); } } return ret; } }
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 第一次找实习,我建议__ #
16136次浏览 227人参与
# 面对职场PUA,是忍还是怼? #
22423次浏览 92人参与
# 联影求职进展汇总 #
98646次浏览 498人参与
# 从mentor身上学到了__ #
14624次浏览 248人参与
# 你认为工作的意义是什么 #
200156次浏览 1260人参与
# 秋招暂停,我将对以下公司做出处罚__ #
27173次浏览 124人参与
# 找工作时遇到的神仙HR #
1035932次浏览 5583人参与
# 外出实习被同学举报 #
1971次浏览 28人参与
# 你怎么评价今年的春招? #
140828次浏览 1380人参与
# 你上一次加班是什么时候? #
114826次浏览 699人参与
# 打工人的至爽时刻or至暗时刻 #
40713次浏览 221人参与
# AI了,我在打一种很新的工 #
112100次浏览 1272人参与
# 你的秋招第一面感觉怎么样 #
127248次浏览 795人参与
# 如果今天是你的last day,你会怎么度过? #
46070次浏览 293人参与
# 秋招我要惩罚这些公司 #
1767次浏览 22人参与
# 你听到的“最没用”的秋招建议 #
18429次浏览 215人参与
# 字节出了豆包coding模型 #
1734次浏览 22人参与
# 韶音科技求职进展汇总 #
58718次浏览 502人参与
# 2025秋招体验点评 #
43904次浏览 452人参与
# 你喜欢工作还是上学 #
80917次浏览 869人参与
# 工作以后,你父母对你啥态度 #
8397次浏览 90人参与
