首页 > 代码库 > HDU 3791
HDU 3791
http://acm.hdu.edu.cn/showproblem.php?pid=3791
建立二叉树,对比是否相同
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define lson rt<<1#define rson rt<<1|1int tree[2500],ttree[2500];char str[25];int main(){ int n; while(~scanf("%d",&n),n){ memset(tree,-1,sizeof(tree)); scanf("%s",str); int len=strlen(str); for(int i=0;i<len;i++){ int a=str[i]-‘0‘; int rt=1; while(tree[rt]!=-1){ if(a<tree[rt])rt=lson; else rt=rson; } tree[rt]=a; } for(int i=0;i<n;i++){ scanf("%s",str); len=strlen(str); memset(ttree,-1,sizeof(ttree)); for(int j=0;j<len;j++){ int a=str[j]-‘0‘; int rt=1; while(ttree[rt]!=-1){ if(a<ttree[rt])rt=lson; else rt=rson; } ttree[rt]=a; } int flag=1; for(int j=1;j<2500;j++) if(tree[j]!=ttree[j]){ flag=0; break; } if(flag)puts("YES"); else puts("NO"); } } return 0;}
HDU 3791
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。