这个题就是考完全二叉树的性质。输入的x1,x2,x3没卵用,读题读了半天。。。
1 #include <iostream> 2 #include <string> 3 #include <vector> 4 #include <algorithm> 5 #include <cstdio> 6 #include <cstdlib> 7 #include <cstring> 8 #include <queue> 9 #include <cstdio> 10 #include <cstdlib> 11 #include <set> 12 #include <sstream> 13 #include <cmath> 14 15 using namespace std; 16 17 int main() 18 { 19 int a[1300]; 20 int b[1300]; 21 int answer[1300]; 22 int n,t,m,i,j,k; 23 char c; 24 int flag = 0; 25 while(cin >> n && n) 26 { 27 printf("S-Tree #%d:\n",++flag); 28 k=n; 29 while(k--) 30 { 31 getchar(); 32 scanf("%c%d",&c,&m); 33 } 34 for(i=0;i<(int)pow(2,n);i++) 35 scanf("%1d",&a[i]); 36 cin >> t; 37 for(i=0;i<t;i++) 38 { 39 int sum = 1; 40 for(j=0;j<n;j++) 41 scanf("%1d",&b[j]); 42 for(j=0;j<n;j++) 43 { 44 if(b[j]) 45 sum=(sum*2+1); 46 else 47 sum*=2; 48 } 49 answer[i] = a[sum-(int)pow(2,n)]; 50 } 51 52 for(i=0;i<t;i++) 53 cout << answer[i]; 54 printf("\n\n"); 55 } 56 return 0; 57 }
原文:http://www.cnblogs.com/HsiaoYeekwan/p/6345155.html