比赛 近期练习题回顾 评测结果 AAAAAAAAAA
题目名称 食物链 最终得分 100
用户昵称 @@@ 运行时间 0.412 s
代码语言 C++ 内存使用 17.60 MiB
提交时间 2018-10-25 10:06:37
显示代码纯文本
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("chain_2016.in");
ofstream cout("chain_2016.out");
int n,m;
int ans = 0;
class animal
{
public:
	// ~animal();
	int in,out;
	int chain;
	vector<int> eat;
	animal()
	{
		in = out = chain = 0;
	}
	// bool 
}a[100001];
int dfs(int x)
{
	int i;
	if(a[x].chain > 0)
	{
		return a[x].chain;
	}
		for (i = 0;i < a[x].eat.size() ; ++i)
		{
			a[x].chain += dfs(a[x].eat[i]);
			/* code */
		}
	
	return a[x].chain;

}
int cyf()
{
	int i,j,k;
	cin >> n >> m;
	for (i = 1; i <= m; ++i)
	{
		int t1,t2;
		cin >> t1 >> t2;
		a[t2].eat.push_back(t1);
		a[t1].out++;
		a[t2].in++;
		/* code */
	}

	for (i = 1; i <= n; ++i)
	{
		if (a[i].in == 0)
		{
			a[i].chain = 1;
			
		}
		 
	}

	for (i = 1; i <= n; ++i)
	{
		if (a[i].out == 0 && a[i].in != 0)
		{
			ans += dfs(i);
			/* code */
		}
		/* code */
	}
	cout << ans << endl;
	cin.close();				
	cout.close();
		return 0;
}
int hhhh = cyf();
int main() {;}