POJ 1105 S-Trees (模拟)

来源:互联网 发布:mysql 32位 64位 编辑:程序博客网 时间:2024/05/29 10:31

题意:一颗满二叉树,每个非叶子层用一个变量xi表示。有m条从根结点开始的路线,0表示向左孩子走,1表示向右孩子走,问m条路的最终结点的值。(模拟)

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <cmath>#include <stack>#include <map>#include <string>#define LL long long#define DB double#define SF scanf#define PF printf#define N 1009#define bug cout<<"bug"<<endl;using namespace std;char pth[10];int n,m;char lef[N];char ans[N];int main(){    #ifndef ONLINE_JUDGE    freopen("in.txt","r",stdin);    #endif    int T = 1;    while(~SF("%d",&n)&&n)    {        char ch[19];        for(int i=1;i<=n;i++)        {            SF("%s",ch);            sscanf(ch+1,"%d",&pth[i]);        }        SF("%s",lef);        SF("%d",&m);        int tmp = 0;        while(m--)        {            SF("%s",ch+1);            int p = 0;            for(int i=1;i<=n;i++)            {                if(ch[pth[i]]=='0') p*=2;                else p = p*2+1;            }            ans[tmp++] = lef[p];        }        ans[tmp] = '\0';        PF("S-Tree #%d:\n%s\n\n",T++,ans);    }    return 0;}


原创粉丝点击