• UVA 712 S-Trees


    题意:

      给一棵满二叉树,每一层代表一个01变量,取0时往左走,取1时往右走。给出所有叶子的值,以及一些查询(即每个变量的值),求最后到达的叶子的值

    分析:

      输出对应叶子节点的值即可,0表示往左子树走,1表示往右子树走,完全可以和二进制等效其来

    代码:

      

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    int main()
    {
    int s,i,j,n,m,a[129],b[8],ans[20000],cas=0;
    char x;
    while (scanf("%d",&n),n)
    {
    ++cas;
    for (i=1;i<=n;i++)
    {
    getchar();
    scanf("%c%d",&x,&m);
    }
    for(i=1;i<=pow(2,n);i++)
    scanf("%1d",&a[i]);
    scanf("%d",&m);
    for (j=1;j<=m;j++)
    {
    for (i=1;i<=n;i++)
    scanf("%1d",&b[i]);
    s=1;
    for (i=1;i<=n;i++)
    if (b[i])
    s+=pow(2,n-i);
    ans[j]=a[s];
    }
    printf("S-Tree #%d: ",cas);
    for (i=1;i<=m;i++)
    printf("%d",ans[i]);
    printf(" ");
    }
    return 0;
    }
  • 相关阅读:
    6.8
    6.7
    6.2
    6.1儿童节
    5.24
    5.22
    5.18
    5.17
    Visual Studio开始一个HelloWorld的enclave程序
    以太坊MPT树的HP(Hex-Prefix)编码
  • 原文地址:https://www.cnblogs.com/137033036-wjl/p/4876515.html
Copyright © 2020-2023  润新知