timus 1242. Werewolf【队列+结构体】

题目链接http://acm.timus.ru/problem.aspx?space=1&num=1242

大致题意:村庄里有几个人不幸被害,是狼人干的!(插一句,这里可以想到一部电影《狼人》,很惊悚),现在就是需要找出可能是狼人的村民!

已知狼人不会去杀自己的祖宗,也不会杀自己的后代。狼人的父母不超过2个人!(儿女?这个不清楚)。

这里给出村里人数n(编号1~n),

给出关系a b

其中a是b的子(女),b是a的父(母)

也给出被害村民的编号。

递增输出可能是狼人的村民的编号,如果没有则输出0


这里的输入有点不按常理,既有字符串的输入,也有数字输入,这个需要判断!

还有被害人数没有给,这个也需要字符判断!


只说思路,因为每个子女人数不确定,就用队列来维护村民子女的编号

#include<queue>

queue<int> vil[1005];

用结构体存储村民父母的编号

struct  Vil

{

  int parent1,parent2;

};

Vil v[1005];

根据被害村民,对其直系关系的村民进行递归(dfs)排除其嫌疑即可!

这里使用队列主要出于减少空间考虑的,也可以写在一个结构体里,给子女那块分配相应的空间!

总的思路就是这样了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值