二叉搜索树HDU 3791

来源:互联网 发布:室内设计软件分析报告 编辑:程序博客网 时间:2024/04/29 07:11

http://acm.split.hdu.edu.cn/showproblem.php?pid=3791

#include <stdio.h>#include <algorithm>#include <iostream>#define maxs 5010#include <string.h>#define MME(i,j) memset(i,j,sizeof(i))using namespace std;int tree1[10010];int tree2[10010];char str[maxs];void Insert(int son,int *tre){    int now=1;    while(tre[now]!=-1)    {        if(tre[now]<son)            now=2*now+1;//右孩子        else now*=2;    }    tre[now]=son;}void build(char *s,int *tr){    int len=strlen(s);    tr[1] = s[0]-'0';    for( int i=1;i<len;i++ )    {        Insert( s[i]-'0',tr );    }}int main(){    int n;    bool flag;    while(~scanf("%d",&n)&& n)    {        flag=1;        MME(tree1,-1);        //MME(tree2,-1);        scanf("%s",str);        build(str,tree1);        for(int i=0;i<n;i++)        {            flag=1;            MME(tree2,-1);            scanf("%s",str);            build(str,tree2);            for(int ii=0;ii<5000;ii++)            {                if(tree1[ii]!=tree2[ii])                {                    flag=0;                    break;                }            }            if(flag)                puts("YES");            else puts("NO");        }    }    return 0;}
0 0
原创粉丝点击