题目描述
如图所示为某生态系统的食物网示意图,据图回答第1小题
现在给你n个物种和m条能量流动关系,求其中的食物链条数。
物种的名称为从1到n编号
M条能量流动关系形如
a1 b1
a2 b2
a3 b3
…
am-1 bm-1
am bm
其中ai bi表示能量从物种ai流向物种bi,注意单独的一种孤立生物不算一条食物链 。
NC:HAOI2016 食物链
输入描述:
第一行两个整数n和m,接下来m行每行两个整数ai,bi描述m条能量流动关系。 (数据保证输入数据符号生物学特点,且不会有重复的能量流动关系出现)
1 ≤ N ≤ 100000,0 ≤ m ≤ 200000
题目保证答案不会爆 int
输出描述:
一个整数即食物网中的食物链条数
输入:
8 9
1 2
1 4
1 7
2 3
2 5
4 3
4 5
4 6
8 4
输出:
9
题目分析
通过数据得出下面的图

求图中路径数,很容易想到采用深度优先对图进行遍历 ,这里不过多分析,通过代码很容易理解。
#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
const int maxn = 1e5<

这是一道关于生态系统食物网的问题,要求根据输入的物种数量n和能量流动关系m,计算食物链条数。给定的数据保证符合生物学特性且没有重复的关系。解题方法是通过深度优先搜索遍历图来找出所有食物链。给出的样例输入和输出展示了如何处理特定案例,并得出食物链的数量。

219

被折叠的 条评论
为什么被折叠?



