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

题目大意:给你一个树 判断这棵树是否是独特的

一颗树是独特的条件:不存在一颗和它本身不同但相似的树

两颗树相似条件:两颗树中点的数量相等且相对应的点的深度相同

如第2个样例

4

1 2

2 3

1 4

4

1 2

1 4

3 4

如图:这两棵树的点的数量相等且相应的点的深度deep相同,所以这两棵树相似,所以样例2存在一颗树与它不同但相似,即不特殊

运用广搜统计每个点的深度

要想一颗树特殊,只有保证他的分支下面不再有子节点

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 1010 using namespace std; struct Edge
{
int u, v, cnt, next;
}edge[N * N]; int head[N], j, cnt;
int a[N];//记录各个点的深度
bool vis[N]; void Add(int u, int v)//邻接表
{
edge[cnt].u = u;
edge[cnt].v = v;
edge[cnt].next = head[u];
head[u] = cnt++;
} void Init()
{
memset(head, -, sizeof(head));
memset(a, , sizeof(a));
memset(vis, false, sizeof(vis));
cnt = j = ;
} void DFS(int u, int deep)
{
int v, i;
vis[u] = true;
for(i = head[u]; i != - ; i = edge[i].next)
{
v = edge[i].v;
if(!vis[v])
{
vis[v] = true;
DFS(v, deep + );
}
}
a[j++] = deep;
return ;
}//查找记录各个点的深度 int cmp(const void *a, const void *b)
{
return *(int *)a - *(int *)b;
} int main()
{
int n, u, v;
while(~scanf("%d", &n))
{
Init();
for(int i = ; i < n ; i++)
{
scanf("%d%d", &u, &v);
Add(u, v);
Add(v, u);
}
DFS(, );
qsort(a, j, sizeof(a[]), cmp);
int deep = , f = , fl = ;
for(int i = ; i < j ; i++)
{
if(a[i - ] == a[i])
{
fl = ;//如果两个点的深度相同,就存在分支,即标记有分支
deep = a[i];
}
if(fl == && a[i] > deep)
f = ;//如果存在分支且分支的下面还有节点则输出NO
}
if(f == )
printf("YES\n");
else
printf("NO\n");
}
return ;
}

HDU 5432 Rikka with Tree (BestCoder Round #53 (div.2))的更多相关文章

  1. hdu 5424 Rikka with Graph II (BestCoder Round #53 (div.2))(哈密顿通路判断)

    http://acm.hdu.edu.cn/showproblem.php?pid=5424 哈密顿通路:联通的图,访问每个顶点的路径且只访问一次 n个点n条边 n个顶点有n - 1条边,最后一条边的 ...

  2. 哈密顿图 BestCoder Round #53 (div.2) 1003 Rikka with Graph II

    题目传送门 题意:判断是否为哈密顿图 分析:首先一种情况是不合法的:也就是度数为1的点超过2个:合法的有:,那么从度数为1的点开始深搜,如果存在一种走法能够走完n个点那么存在哈密顿路 收获:学习资料 ...

  3. BestCoder Round #53 (div.1)

    Problem A: 题目大意: 给出以节点1为根的一棵树A,判断它是否是特殊的.一棵树是特殊的当且仅当不存在和它不完全相同的一棵树B,使得A中点i到点1的距离和B中相等. 题解: 假设一个点x的深度 ...

  4. hdu 5423 Rikka with Tree(dfs)

    Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he ...

  5. BestCoder Round #68 (div.2) tree(hdu 5606)

    tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  6. hdu 5636 搜索 BestCoder Round #74 (div.2)

    Shortest Path  Accepts: 40  Submissions: 610  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: ...

  7. BestCoder Round #69 (div.2) Baby Ming and Weight lifting(hdu 5610)

    Baby Ming and Weight lifting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

  8. hdu5634 BestCoder Round #73 (div.1)

    Rikka with Phi  Accepts: 5  Submissions: 66  Time Limit: 16000/8000 MS (Java/Others)  Memory Limit: ...

  9. hdu5631 BestCoder Round #73 (div.2)

    Rikka with Graph  Accepts: 123  Submissions: 525  Time Limit: 2000/1000 MS (Java/Others)  Memory Lim ...

随机推荐

  1. laravel homestead vagrant box安装使用,问题,及相关命令

    Vagrant is a tool that manages oracle virtual boxes 1.本地下载https://atlas.hashicorp.com/laravel/boxes/ ...

  2. HDU 3127 WHUgirls【二维完全背包】

    题意:给出一个长为a,宽为b的布,再给出n个围巾的规格(长x,宽y,价值c),问怎样裁剪能够得到最大的价值. ----第一次做的时候不会---然后放到今天做--发现还是不会---于是又--看题解了-- ...

  3. Web Forms vs Web MVC

    MVC相对于WebForm来说更难学习,但性能优于WebForm,比较适合大型项目,开发成本较高,但耦合度低,易于维护,没有太多的现成控件,开发效率较低.对WebForm有基础的人反而不太容易学MVC ...

  4. php实现一致性哈希算法

    <?php//原理概念请看我的上一篇随笔(http://www.cnblogs.com/tujia/p/5416614.html)或直接百度 /** * 接口:hash(哈希插口).distri ...

  5. cURL: PHP并发处理方式

    function classic_curl($urls, $delay) { $queue = curl_multi_init(); $map = array(); foreach ($urls as ...

  6. 【NYOJ-187】快速查找素数—— 枚举法、筛选法、打表法

    快速查找素数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数. 输入 给出一个正整数数N(N ...

  7. C#实现不安装Oracle客户端访问远程服务器数据!!

    概述: C#通过使用ADO的方式在未安装Oracle数据库的前提下,客户端程序远程访问服务器,会出现:“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或 ...

  8. RandomAcessFile、MappedByteBuffer和缓冲读/写文件

    项目需要进行大文件的读写,调查测试的结果使我决定使用MappedByteBuffer及相关类进行文件的操作,效果不是一般的高. 网上参考资源很多,如下两篇非常不错: 1.花1K内存实现高效I/O的Ra ...

  9. c# 读取IntPtr 中的数据 z

    c++的写法是这样的: LRESULT CPictureQueryDlg::OnQueryPicNty(WPARAM wp, LPARAM lp) { EnableWindow(TRUE); BYTE ...

  10. 解决:cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

    在win下用Go语言的cgo时(比如下面场景)我们会用到的GCC编译器,Win下我们一般用MinGW. Golang连接Oracle数据库:win下 golang 跨平台编译 MinGW全称Minim ...