hdu 5432
For a tree T
, let F(T,i)
be the distance between vertice 1 and vertice i
.(The length of each edge is 1).
Two trees A
and B
are similiar if and only if the have same number of vertices and for each i
meet F(A,i)=F(B,i)
.
Two trees A
and B
are different if and only if they have different numbers of vertices or there exist an number i
which vertice i
have different fathers in tree A
and tree B
when vertice 1 is root.
Tree A
is special if and only if there doesn't exist an tree B
which A
and B
are different and A
and B
are similiar.
Now he wants to know if a tree is special.
It is too difficult for Rikka. Can you help her?
For each testcase, the first line contains a number n(1≤n≤1000)
.
Then n−1
lines follow. Each line contains two numbers u,v(1≤u,v≤n)
, which means there is an edge between u
and v
.
1 2
2 3
4
1 2
2 3
1 4
NO
For the second testcase, this tree is similiar with the given tree:
4
1 2
1 4
3 4
#include<queue>
#include<iostream>
using namespace std;
struct node
{
int x,y;
}stu;
int main()
{
int num[1001],ans[1001];
int i,j,t,x,y;
while(cin>>t)
{
queue<node>q;
node tt;
memset(num,0,sizeof(num));
memset(ans,0,sizeof(ans));
num[1]=1;
for(j=1;j<t;j++)
{
cin>>stu.x>>stu.y;
if(num[stu.x]!=0)
{
num[stu.y]=num[stu.x]+1;
continue;
}
if(num[stu.y]!=0)
{
num[stu.x]=num[stu.y]+1;
continue;
}
if(num[stu.x]==0&&num[stu.y]==0)
{
q.push(stu);
continue;
}
}
while(!q.empty())
{
tt=q.front();
q.pop();
if(num[tt.x]!=0)
{
num[tt.y]=num[tt.x]+1;
continue;
}
if(num[tt.y]!=0)
{
num[tt.x]=num[tt.y]+1;
continue;
}
if(num[tt.x]==0&&num[tt.y]==0)
{
q.push(tt);
continue;
}
}
int maxx=0;
for(i=1;i<=t;i++)
{
ans[num[i]]++;
// cout<<ans[num[i]]<<endl;
if(maxx<num[i]) maxx=num[i];
}
int flag=1;
for(j=maxx-1;j>=1;j--)
{
// cout<<ans[j]<<endl;
if(ans[j]>1)
{
flag=0;
break;
}
}
if(flag==0) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
return 0;
}
hdu 5432的更多相关文章
- HDU 5432 Rikka with Tree (BestCoder Round #53 (div.2))
http://acm.hdu.edu.cn/showproblem.php?pid=5423 题目大意:给你一个树 判断这棵树是否是独特的 一颗树是独特的条件:不存在一颗和它本身不同但相似的树 两颗树 ...
- hdu 5432 Pyramid Split 二分
Pyramid Split Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/conte ...
- HDU 5432 Pyramid Split
题意:有n个底面是正方形的四棱锥,用一个水平截面将所有四棱锥分成两半,要求上一半体积的和等于下一半,求水平截面的高度,输出整数部分. 解法:二分截面高度.比赛的时候二分写不明白了orz…… 代码: # ...
- hdu 5432 Pyramid Split(二分搜索)
Problem Description Xiao Ming is a citizen who's good at playing,he has lot's of gold cones which ha ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
- HDU 4569 Special equations(取模)
Special equations Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU 4006The kth great number(K大数 +小顶堆)
The kth great number Time Limit:1000MS Memory Limit:65768KB 64bit IO Format:%I64d & %I64 ...
随机推荐
- 阿里云yii2 composer update 很慢的解决办法
先执行如下语句 composer global require "fxp/composer-asset-plugin:dev-master" 再执行 composer update
- flutter chip标签组件
//一个Material widget. 它可以将一个复杂内容实体展现在一个小块中,如联系人.import 'package:flutter/material.dart'; class ChipDem ...
- 获取并打印Spring容器中所有的Bean名称
思路: 1.实现Spring的ApplicationContextAware接口,重写setApplicationContext方法,将得到的ApplicationContext对象保存到一个静态变量 ...
- linux安装qt
1.下载run文件 2../运行 3.修改配置文件 sudo gedit /etc/profile 添加如下: port QTDIR=/home/rainbow/zhuxy/soft/Qt5.9.0/ ...
- RabbitMQ 入门教程(PHP版) 第四部分:路由(Routing)
路由(Routing) 在前面的第三部分教程中,我们实现了一个简单的日志系统.可以把日志消息广播给多个接收者. 本篇教程中我们打算新增一个功能——使得它能够只订阅消息的一个字集.例如,我们只需要把严重 ...
- Linux记录-常用统计awk
#统计第一列ip的个数(uniq -c 打印重复行count计数) cat ip.txt | awk '{print $1}' | sort | uniq -c | sort -rn | head - ...
- LeetCode_383. Ransom Note
383. Ransom Note Easy Given an arbitrary ransom note string and another string containing letters fr ...
- 实现不同的项目,用不同的git 账号提交
可以全局配置一个git 账户名和密码,然后在具体项目里单独配置一个账户名和密码 例如: git config --global user.name "winyh" git conf ...
- 复习sql server 2000 MSDE2000 ,安装,打补丁,开1433端口。
前言: 由于工作需要,一个仍在使用的古董软件需要安装配置. 原有系统是在主机部署,单机安装sql2000,其他机器(分机)也单机部署软件,部署sql2000,通过dtsrun /f sync.dts( ...
- DB2使用MERGE INTO语句实现西虹市首富的新增及更新操作
首先我们新建一张名为XIHONGSHISHOUFU的表,这张表是评委会初步评选出的西虹市首富的候选人员,下面的SQL语句包含建表和插入数据的部分: CREATE TABLE XIHONGSHISHOU ...