解题思路:

给组测试数据,过了应该就问题不大了.

Snipaste_2019-01-22_18-31-46.png

注意事项:

参考代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class T1448 {
	public static void Insert(int []tree,int n,int i) {
		if(tree[i] == 0) {tree[i]=n;return;}
		if(n>tree[i]) Insert(tree,n,2*i+1);
		else Insert(tree,n,2*i);
	}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		final int N = 500;
		while(in.hasNext()) {
			String str = in.nextLine();
			ArrayList<Integer> list = new ArrayList<Integer>();
			int tree[] = new int[N];
			Scanner sc = new Scanner(str);
			while(sc.hasNext()) {
				int t = sc.nextInt();
				list.add(t);
				Insert(tree,t,1);
			}
			Collections.sort(list);
			tree[0]=tree[1];
			String []ans = new String[list.size()+1];
			ArrayList<Integer> queue = new ArrayList<Integer>();
			queue.add(1);
			while(queue.size()!=0) {
				int value = queue.get(0),index = list.indexOf(tree[value])+1;
				if(value==1) ans[index] = tree[value]+"";
				else {
					String t = ans[list.indexOf(tree[value/2])+1];
					t = t.replaceAll("\\d|-",".").substring(0,t.length()-1);
					if(tree[value]<tree[value/2]&&tree[value/2]<=tree[value/4] ||
							tree[value]>tree[value/2]&&tree[value/2]>tree[value/4]) {
						StringBuilder sb = new StringBuilder(t);
						for(int k = t.length()-1;k>=0;k--)
							if(sb.charAt(k)=='|') {sb.setCharAt(k, '.');break;}
						t = sb.toString();
					}
					ans[index]=t+"|-"+tree[value];
				}
				int flag = 0;
				if(tree[2*value]!=0) { flag=1; queue.add(2*value); }
				if(tree[2*value+1]!=0) { flag=1; queue.add(2*value+1); }
				if(flag==1) ans[index]+="-|";
				queue.remove(0);
			}
			for(int i = list.size();i>=1;i--)
				System.out.println(ans[i]);
		}
		in.close();
	}
}


点赞(1)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论