题目的意思是给一棵完全二叉树,从根节点开始,碰到0往左,碰到1往右。
深度不大于8.第一行输入是深度。
除了叶子节点,其他处在每一水平线上的节点值都是一样的,并且用x1 ,x2,x3,x4......等来代替,第二行的输入就给出顺序。。
然后第三行的输入是从根节点到叶子节点的次数。
接下去是每一次x1,x2,x3,x4....的值是多少。(虽然每一层是x1,x2等等中的哪一个不是顺序的,但输入是顺序的,x1,x2,x3,所以要把值对上去。)。。因为每一次这些值不同,所以最终落到的位置也不同,就是要求这么多次,每一次所到的节点组成的串,输出。
这题我并没有建树,而是做了一个二进制计算,假如深度为3.。那000就是第一个 001就是第二个。刚好对上了01二进制所表示的数的大小。。
AC代码:
#include<iostream>
#include<string>
#include<stdio.h>
#include<cmath>
using namespace std;
int main () {
int t;
int count;
int flag[8];
char dep[8];
char leaf[256];
char ans[256];
int res = 0;
int cas = 0;
while (scanf("%d",&