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

【注意】

是看树的形态是否一样,而不是中序遍历的结果

【Accepted】

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue> using namespace std;
const int maxn=(<<)+;
char str[];
int num1[maxn];
int num2[maxn];
int len1,len2;
int n;
void build1(){
for(int i=;i<len1;i++){
int cur=;
while(num1[cur]!=-){
if(str[i]-''>num1[cur]){
cur=(cur<<)+;
}else{
cur=cur<<;
}
}
num1[cur]=str[i]-'';
}
}
void build2(){
for(int i=;i<len2;i++){
int cur=;
while(num2[cur]!=-){
if(str[i]-''>num2[cur]){
cur=(cur<<)+;
}else{
cur=cur<<;
}
}
num2[cur]=str[i]-'';
}
}
bool flag;
int main(){
while(scanf("%d",&n)&&n){
memset(num1,-,sizeof(num1));
scanf("%s",str);
len1=strlen(str);
build1();
// for(int i=1;i<=len1;i++){
// cout<<num1[i]<<" ";
// }
// cout<<endl;
for(int i=;i<n;i++){
scanf("%s",str);
flag=true;
memset(num2,-,sizeof(num2));
len2=strlen(str);
if(len1!=len2){
puts("NO");
continue;
}
build2();
for(int j=;j<maxn;j++){
if(num1[j]!=num2[j]){
flag=false;
break;
}
}
if(flag) puts("YES");
else puts("NO");
}
}
return ;
}

最新文章

  1. (转载)(收藏)Awk学习详细文档
  2. Hasor-Core v0.0.4 &amp; Web v0.0.3 发布
  3. 【微信Java开发 --2】接入微信公众平台开发,配置自己的服务器,验证过程
  4. UITableViewCell左对齐的方法
  5. oracle 查看运行中sql
  6. CentOS下安装实时检测网络带宽的小工具bmon
  7. Ubuntu 查看/修改文件编码
  8. std::cout彩色输出
  9. Android中多线程下载列表的封装实现(含进度反馈)
  10. Ubuntu与Ubuntu系统之间的mount挂载
  11. poj 3258 River Hopscotch(二分搜索之最大化最小值)
  12. Linux-统一事件源
  13. Linux下使用sendmail发送邮件
  14. RDBMS 数据库补丁集补丁号码高速參考-文档 ID 1577380.1
  15. MySQL存储过程(转载)
  16. [置顶] 一个demo学会css
  17. 利用Jsonp实现跨域请求,spring MVC+JQuery
  18. token 验证
  19. ubuntu和mac OS X下另一种使用QQ的方法
  20. VS2012 发布网站步骤

热门文章

  1. vijos 1448 校门外的树 (不是05年普及组那题)
  2. MATLAB——解数独
  3. 1658: Easier Done Than Said?
  4. java项目指向maven进行构建方式
  5. #include &lt;&gt; 和 #inlude &quot;&quot;的区别
  6. Docker基础内容之网络基础
  7. iOS7.1企业版发布后用户通过sarafi浏览器安装无效的解决方案
  8. ios之UIToolBar
  9. PLAYGROUND 延时运行
  10. c++ 读取一行的2个数