题意:按照命令走,0左,1 右,而且要按照给出的 Xn 的顺序
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
int n,m;
char arr[200];
char brr[200];
vector<int>ve;
void solve()
{
char temp[200];
int val;
ve.clear();
for (int i = 0 ; i < n ; i++)
{
scanf("%s",temp);
sscanf(temp+1,"%d",&val);
ve.push_back(val);
}
scanf("%s",arr);
scanf("%d",&m);
while (m--)
{
scanf("%s",brr+1);
int pos = 1 ;
for (int i = 0 ; i < ve.size() ; i++)
{
if (brr[ve[i]] == '0')
pos = pos * 2 ;
else pos = pos * 2 + 1 ;
}
printf("%c",arr[pos-(1<<n)]);
}
printf("\n");
}
int main()
{
int t = 1;
while (scanf("%d",&n)!=EOF && n)
{
printf("S-Tree #%d:\n",t++);
solve();
printf("\n");
}
return 0;
}