天梯题集——冰岛人(隐藏条件:考虑嫡系)

前文

愿天下有情人都是失散多年的兄妹 与 冰岛人 解题思路几乎是同理的,不过这里需要考虑多一个是否嫡系的关系
(卡了我好久、又来一个隐藏条件,长知识、长知识…)。
用递归实现很容易出现超时,循环果然比递归效率高。
循环与递归效率的比较

冰岛人

t1
t2
t3


解题难点

①、记录数据——映射+结构体

struct node{
   
	string fa;
	int sex;
};
map <string, node> num;

第一次把映射和结构体结合起来,查询方便了许多。


②、判断 m1 与 m2 是否是嫡亲

//判断 s1 是否为 s2 的嫡系
bool judge1(string s1, string s2){
   
	for(string A=s1; !A.empty(); A=num[A].fa)
		if(A==s2) return false;
	return true;
}

③、m1 与 m2 五代以内无有公共祖先

//s1与s2五代以内无有公共祖先 
bool judge2(string s1, string s2){
   
	int i=1;
	string A, B;
	for(A=s1; !A.empty()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值