最近学校生物在教能量流动,因此离不开食物网,也就离不开食物链。
那么问题来了,给出食物网(DAG),怎么求食物链条数呢?
怎么来的?首先,找到同时被2个以上生物捕食的被捕食者,求出:能量来源X(能量去向-1)。其次,对得到的数值求和。最后,加上生产者的能量去向。
for example:
翻开教材,找几个图试试,全全搞定。爽?不!!!这是错的。
请看下图:
找岔法结果为:1*2+2*2+1*1+3=10条
但其实结果为:11条
可以采用倒退法,从最高消费者开始,记为1往下级递推。
注意这里只能推导出G,而非B
共计11条。
综上,采用数据结构:并查集,考虑算法:BFS,就能出解。
其实是我瞎诌的,不就是简单递推(DP)吗,至此全文结束。