第二题 private static void run2() { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); HashMap<Integer, Integer>[] map = new HashMap[n + 1]; for (int i = 0; i <= n; ++i) map[i] = new HashMap<Integer, Integer>(); for (int i = 0; i < n - 1; ++i) { int u = scanner.nextInt(); int v = scanner.nextInt(); int c = scanner.nextInt(); map[u].put(v, c); } long[] res = new long[n + 1]; Arrays.fill(res, 0); for (int i = n; i > 0; --i) { int key, value; for (Map.Entry<Integer, Integer> entry : map[i].entrySet()) { key = entry.getKey(); value = entry.getValue(); res[i] = Math.max(res[i], res[key] + value); } } for (int i = 1; i <= n; ++i) { if (i <= n - 1) System.out.print(res[i] + " "); else System.out.println(res[i]); } scanner.close(); }
点赞 2

相关推荐

牛客网
牛客企业服务