Uva 548
来源:互联网 发布:lol比赛竞猜软件 编辑:程序博客网 时间:2024/05/23 14:01
import java.util.Scanner;public class Main{static int maxv = 10000 + 10;static int[] inOrder = new int[maxv];static int[] postOrder = new int[maxv];static int[] lch = new int[maxv];static int[] rch = new int[maxv];static int best = 0;static int bestSum = 0;static int n = 0;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String[] strings = new String[2];while (scanner.hasNext()) {strings[0] = scanner.nextLine();strings[1] = scanner.nextLine();readList(strings[0], inOrder);readList(strings[1], postOrder);build(0, n-1, 0, n-1);bestSum = 1000000000;dfs(postOrder[n-1], 0);System.out.println(best);}}public static void readList(String string, int[] tmp) {String[] strings= string.split(" ");n = strings.length;for (int i = 0; i < n; i++) {tmp[i] = Integer.valueOf(strings[i]);}}public static int build(int L1, int R1, int L2, int R2) {if (L1 > R1) {return 0;}int root = postOrder[R2];int p = L1;while (inOrder[p] != root) {p++;}int cnt = p - L1;lch[root] = build(L1, p - 1, L2, L2 + cnt - 1);rch[root] = build(p+1, R1, L2+cnt, R2-1);return root;}public static void dfs(int u, int sum) {sum += u;if (lch[u] == 0 && rch[u] == 0) {if (sum < bestSum || (sum == bestSum && u < best)) {best = u;bestSum = sum;}}if (lch[u] > 0) {dfs(lch[u], sum);}if (rch[u] > 0) dfs(rch[u], sum);}}
阅读全文
0 0
- uva 548
- UVA 548
- uva 548
- uva 548
- uva 548
- uva 548
- uva 548
- uva 548
- uva 548
- uva 548
- UVa 548
- uva 548
- UVA 548
- Uva 548
- UVA 548
- UVa 548 Tree
- uva 548 Tree
- uva 548 - Tree
- android 图标控件的实现(一)
- 欢迎使用CSDN-markdown编辑器
- Pythone bug
- Ubuntu下固定IP网络设置——NAT
- 不采用第三方直接使用Intent分享,主要都是针对国外的比如FB,Line,WhatsApp,Telegram
- Uva 548
- 初识阻塞队列BlockingQueue
- python(list,tuple,dict,set)
- adb 打开apk
- spring-cloud-client搭建客户端(二)
- 我和亮亮有个约“绘”
- JPA 学习--Query接口下的 API 测试
- 《Redis设计与实现 黄建宏 著》阅读笔记目录(持续更新)
- Html-4.其他标签