当前位置:首页 > 芯闻号 > 充电吧
[导读]题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5423 题面: Rikka with Tree Time Limit: 2000/1000 MS (

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5423


题面:

Rikka with Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 667    Accepted Submission(s): 306


Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them:

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 numberi 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?  
Input There are no more than 100 testcases.

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.  
Output For each testcase, if the tree is special print "YES" , otherwise print "NO".  
Sample Input
3
1 2
2 3
4
1 2
2 3
1 4

 

Sample Output
YES
NO

HintFor the second testcase, this tree is similiar with the given tree:
4
1 2
1 4
3 4


解题:

    题目意思也是蛮绕的。相似是指,两棵树顶点数相同,且每个点到根节点(1为根节点)的距离都相同。不同是指,顶点数不同或者两棵树上某个节点的父亲不一样。现要求判断一棵树是不是special,special的特征是,不存在与之相似或与之不同的树。一开始有点混,以为只要是链即可。实际上,这样会漏掉两种情况,链是不相似,且不不同的情况,应该是去找是否存在不同且相似的情况。存在输出“NO”,否则输出“YES”。

    那么什么是不同且相似呢?就是某个节点它有超过1个孩子,并且它至少还可以往下两层。那么,假设当前节点在x层,其左右孩子分别为a,b,b还有孩子,那么交换a,b的孩子。对于新的到的树,就是不同且相似的,即每个节点到根节点距离不变,但交换的孩子的父亲发生了改变。


代码:

#include 
#include 
#include 
using namespace std;
struct edge
{
	int next,to;
}store[2010];
int head[1005],cnt;
bool vis[1005];
//加一条从a到b的边
void addedge(int a,int b)
{
	//cnt为边的存储下标
	store[cnt].to=b;
	store[cnt].next=head[a];
	//head为个顶点指向的第一条边的下标
	head[a]=cnt++;
}
bool flag;
//flag为标记,y为上一点是否有超过一个孩子的标记
void dfs(int x,bool y)
{
	if(flag)return;
	//标记该点
	vis[x]=1;
	//如果上一节点有超过一个孩子
	if(y)
	{
		int num=0,tmp=head[x];
		while(tmp!=-1)
		{
			//那么只要当前节点还有孩子即可
			if(!vis[store[tmp].to])
			{
				flag=true;
				return;
			}
			tmp=store[tmp].next;
		}
	}
	//如果没有,就继续向下移
	else
	{
	  int tmp=head[x],num=0;
	  //数当前节点孩子数量
	  while(tmp!=-1)
	  {
	    if(!vis[store[tmp].to])
			num++;
		tmp=store[tmp].next;
	  }
	  //如果孩子数量大于1
	  if(num>1)
	  {
		  int tmp=head[x];
		  while(tmp!=-1)
		  {
			  if(!vis[store[tmp].to])
				  dfs(store[tmp].to,1);
			  tmp=store[tmp].next;
		  }
	  }
	  //如果孩子数量小于等于1
	  else
	  {
         int tmp=head[x];
		  while(tmp!=-1)
		  {
			  if(!vis[store[tmp].to])
				  dfs(store[tmp].to,0);
			  tmp=store[tmp].next;
		  }
	  }
	}
}
int main()
{
    int n,a,b;
	while(~scanf("%d",&n))
	{
	   memset(vis,0,sizeof(bool)*(n+1));
	   memset(head,-1,sizeof(int)*(n+1));
       cnt=0;
       for(int i=1;i1)
         dfs(1,1);
	   else
		 dfs(1,0);
	   if(flag)printf("NOn");
	   else printf("YESn");
	}
	return 0;
}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

百度搜索中台系统不但承接了搜索的阿拉丁流量,也致力于构建各个垂直业务的搜索能力。

关键字: 百度 搜索中台 搜索

提到搜索,很多人第一时间想到的就是百度、搜狗、360

关键字: 搜索

专注于引入新品推动行业创新的电子元器件分销商贸泽电子 (Mouser Electronics) 发布了全新升级的技术资源中心,这个可搜索的资源库中包含贸泽这家全球分销商不断扩充的技术文章、博客文章、电子书和Methods...

关键字: 贸泽电子 技术资源中心 搜索

最近,美国司法部对谷歌公司提起了反垄断诉讼,其中一个关键指控就是谷歌与苹果达成的秘密默认搜索协议。

关键字: 苹果 谷歌 搜索

22年前,司法部的反垄断审查对象是微软,最终,一场“跨世纪”的审判轰动全球。22年后,这把达摩克利斯之剑悬在了谷歌头上。

关键字: 反垄断 微软 搜索

8月25日消息,又到一年一度牛郎织女鹊桥相会的七夕节,这是情侣们的“发糖”秀恩爱环节。百度发布七夕搜索大数据,对暖男们的七夕搜索行为进行分析。 百度搜索大数据显示,从年龄上来看, 80、90后是暖男聚

关键字: 上海人 奢侈品 七夕 搜索

多元化收入对百度来说,还是一条艰难的路。 北京时间8月14日,百度(NASDAQ:BIDU)发布了截至2020年6月30日未经审计的第二季度财务报告。 财报显示,2020年第二季度,业绩达到总收入26

关键字: 搜索 百度 谷歌

北京时间7月30日凌晨消息,美国当地时间周三(北京时间30日凌晨),亚马逊、苹果、谷歌母公司Alphabet、Facebook的首席执行官将首次集体出席众议院听证会,接受立法者的质询。 Alphabe

关键字: 搜索 皮查伊 谷歌

7月27日晚间,中国第二大搜索公司搜狗宣布收到腾讯的私有化收购要约,腾讯准备将以每股9美元的价格收购搜狗的其他股份,若收购成功,搜狗公司将从美国股市退市。截止发稿时,受此影响,搜狗股价大涨48%,报价

关键字: 搜狗 搜索 收购 腾讯

北京时间7月29日消息,谷歌公司CEO桑达尔·皮查伊(Sundar Pichai)在预先准备好的反垄断听证会证词中称,公司在搜索领域面临众多对手。皮查伊称:“当你在网上搜素产品时,你可能会登陆亚马逊、

关键字: 搜索 谷歌
关闭
关闭