poj1635树的最小表示法,用于判断树的同构
来源:互联网 发布:seo 推广 编辑:程序博客网 时间:2024/04/27 17:01
#include <string>
#include <vector>
#include <cmath>
#include <queue>
#include <algorithm>
#include <iostream>
using namespace std;
string min_pre(string str)//必须保证str是树的表示。如果是str随机01序列,则下面的代码会出错,需要给出跳出的条件。
{
int start=0,end;
vector<string> box;
string temp;
int depth=0;
for(int i=0;str[i];i++)
{
depth+=str[i]=='0'?1:-1;//0表示深度+1,1则表示深度-1
if(depth==0)//深度回到0,说明得到了一棵子树
{
end=i;
temp=string("0")+min_pre(str.substr(start+1,end-start+1-1))+string("1");//去掉子树首位的0和末位的1,往里走一层,递归寻找子树的最小表示
box.push_back(temp);
start=end+1;
}
}
sort(box.begin(),box.end());
string ret;
for(int p=0;p<box.size();p++) ret+=box[p];
return ret;//返回最小表示
}
int main()
{
int T;
scanf("%d",&T);
string s1,s2;
for(int t=0;t<T;t++)
{
cin>>s1>>s2;
s1=min_pre(s1);
s2=min_pre(s2);
if(s1==s2) printf("same/n");
else printf("different/n");
}
return 0;
}
- poj1635树的最小表示法,用于判断树的同构
- poj1635 树的最小表示
- POJ1635【树的同构】【hash】
- 树的最小表示法 poj1635 Subway tree systems
- poj 1635( 树的最小表示法判断同构 )
- poj 1635 Subway tree systems 判断树的同构 树的最大最小表示法模板
- [POJ1635]Subway tree systems 判断有根树的同构 有根树哈希
- 【字符串循环同构的最小表示法】
- pku 1635 Subway tree systems(树的同构,最小表示)
- 判断树的同构
- 判断树的同构
- 地铁系统 POJ1635 subway tree systems 判断树同构 DFS搜索子串
- 【理解字符串循环同构的最小表示法】
- 理解字符串循环同构的最小表示法
- 【理解字符串循环同构的最小表示法】
- 字符串循环同构的最小表示法(转)
- 【理解字符串循环同构的最小表示法】
- 隐藏密码(字符串的同构与最小表示法)
- Linux 学习资料
- 有谁可以帮我哈
- 精确运算避免使用float和double
- PHP——update
- 网络书
- poj1635树的最小表示法,用于判断树的同构
- 2010年上海中医药大学人才需求计划
- SQL Server 优化存储过程的七种方法
- Ajax动态树实现
- X.509证书格式。
- ubuntu 删除文件目录 rm rmdir 命令
- c/c++实现一个密集型server/socket多路复用select
- [雷倒]计算机系学生巨牛的请假条
- asp.net用户登陆问题在客户端禁用了cookies时如何做