此题三战三卒……!!

一卒:没有考虑连边的顺序。
二卒:用排序解决了连边的顺序,然后用重心似乎搞不了……
三卒:考虑到rp问题,换了换hash的数..三卒!
扔了重心终于A掉了
可以用括号序列,然后hash,不过我hash的姿势有点怪怪的

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<vector>
#include<queue>
#include<set>
#include<map>
#include<iostream>
#include<algorithm>
#include<ctime>
#define ll  unsigned long long
using namespace std;
int sc()
{int i=0; char c=getchar();while(c>'9'||c<'0')c=getchar();while(c>='0'&&c<='9')i=i*10+c-'0',c=getchar();return i;
}
ll ans[55][55];
int head[55],lst[555],nxt[555];
int size[55],sum[55],Ans[55];
int tot,n,m,mn;
void insert(int x,int y)
{lst[++tot]=y;nxt[tot]=head[x];head[x]=tot;
}
ll hash(int x,int f)
{ll q[55],ans='(';int top=0; for(int i=head[x];i;i=nxt[i])if(lst[i]!=f)q[++top]=hash(lst[i],x);sort(q+1,q+top+1);for(int i=1;i<=top;i++)ans=ans*233+q[i];return ans*233+')';
}
int main()
{int Q=sc();for(int i=1;i<=Q;i++){memset(head,0,sizeof(head));tot=0;n=sc();for(int j=1;j<=n;j++){int x=sc();if(x)insert(x,j),insert(j,x);}for(int j=1;j<=n;j++)ans[i][j]=hash(j,0);sort(ans[i]+1,ans[i]+n+1);for(int j=1;j<=i;j++){int k;for(k=1;k<=n;k++)if(ans[i][k]!=ans[j][k])break;if(k>n){printf("%d\n",j);break;}}}return 0;
}

BZOJ 4337: BJOI2015 树的同构|Hash相关推荐

  1. 无根树的同构:Hash最小表示法(bzoj 4337: BJOI2015 树的同构)

    这里的同构是指: 对于两棵树A, B,如果能通过重新标号使得两棵树完全相同,则称树A和B同构 Hash最小表示法步骤: ①暴力每个节点为根 ②对于当前根x,对树进行DFS ③DFS时对每个节点维护一个 ...

  2. [树hash]BZOJ 4337——BJOI2015 树的同构

    题目梗概 对于两个树T1和T2,如果能够把树T1的所有点重新标号,使得树T1和树T2完全相 同,那么这两个树是同构的. 有M个有根树,请你把它们按同构关系分成若干个等价类. 解题思路 第一次写树has ...

  3. BZOJ.4337.[BJOI2015]树的同构(树哈希)

    BZOJ 洛谷 \(Description\) 给定\(n\)棵无根树.对每棵树,输出与它同构的树的最小编号. \(n及每棵树的点数\leq 50\). \(Solution\) 对于一棵无根树,它的 ...

  4. 4337: BJOI2015 树的同构

    4337: BJOI2015 树的同构 Time Limit: 10 Sec   Memory Limit: 256 MB Submit: 171   Solved: 81 [ Submit][ St ...

  5. [BJOI2015] 树的同构

    4337: BJOI2015 树的同构 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 1092  Solved: 460 [Submit][Stat ...

  6. P5043 【模板】树同构([BJOI2015]树的同构 // P4323 [JSOI2016]独特的树叶

    一.P5043 [模板]树同构([BJOI2015]树的同构): #include<iostream> #include<cstdio> #include<algorit ...

  7. 【BZOJ - 4337】BJOI2015 树的同构(树哈希)

    题干: 树是一种很常见的数据结构. 我们把N个点,N-1条边的连通无向图称为树. 若将某个点作为根,从根开始遍历,则其它的点都有一个前驱,这个树就成为有根树. 对于两个树T1和T2,如果能够把树T1的 ...

  8. P5043 【模板】树同构([BJOI2015]树的同构) 树的hash

    题意 对于两个树 T1T_1T1​ 和 T2T_2T2​,如果能够把树 T1T_1T1​ 的所有点重新标号,使得树 T1T_1T1​ 和树 完 T2T_2T2​ 全相同,那么这两个树是同构的.给你多棵 ...

  9. [BJOI2015]树的同构

    嘟嘟嘟 判断树的同构的方法就是树上哈希. 如果树是一棵有根树,那么只要从根节点出发dfs,每一个节点的哈希值等于按传统方式算出来的子树的哈希值的结果.需要注意的是,算完子树的哈希值后要先排序再加起来, ...

最新文章

  1. 忙~~~~~~~~~~~~~~~~~
  2. 4、Mysql 主从复制报错[ERROR] [MY-013117] 踩坑
  3. java定义矩形类rect_Java定义矩形类
  4. 开启企业级市场转型之路 群晖亮出安全“杀手锏”
  5. [置顶] JQuery在线截取图片
  6. 定了!特斯拉宣布股东大会和“电池日”活动9月22日举行
  7. laravel5.5 尝试使用laravel安装器安装(失败) 最后还是用的composer。。。
  8. InnoDB与UUID
  9. class反编译软件,超级好用
  10. 图解深度学习-三种梯度下降法可视化(BGD,SGD,MBGD)
  11. 免费视频文件生成视频二维码的方式详解
  12. 般若波罗蜜多心经(观音心经)注解
  13. Narrow daylight 歌词翻译
  14. 23种设计模式彩图-设计模式之禅
  15. 微软服务器登录慢怎么解决,登录微软账户特别慢的原因
  16. 通过 irp 请求包删除文件
  17. Javascript 富文本编辑器,单击按钮后内容可编辑区域失去焦点
  18. Python爬虫之Js逆向案例(2)-某乎搜索
  19. Delay Penalty for RNN-T and CTC
  20. Windows Server 2016 搭建 FTP

热门文章

  1. 【SICP练习】146 练习4.2
  2. 14.1 NFS介绍 14.2 NFS服务端安装配置 14.3 NFS配置选项
  3. 4*4按键控制屏幕变化
  4. spssχ2检验_SPSS详细操作:一致性检验和配对卡方检验
  5. 安装NVIDIA驱动的一些新问题
  6. c++中[Error] cin was not declared in this scope 是什么意思
  7. 狂笑!可笑20分钟的段子!
  8. golang GC相关调试参数
  9. 人月神话札记:祸起萧墙
  10. windows设置远程登录-入门篇