题目要求:
这题和滑雪的异曲同工,都是进行深搜,搜索过的值进行结点存储
利用图的数据结构
关键代码:
for(int i = 1; i <= n; i++) {
dis = max(dis, dfs(i));
}
int dfs(int x) {
if (a[x] != 0)
return a[x];
a[x]=1;
for(int i = 1; i <= m; i++) {
if(r[i][0] == x) {
a[x] = max(dfs(r[i][1]) + 1, a[x]);
}
}
return a[x];
}
这题有两个点没注意到:
(1)dis重新多组输入的时候没有重新赋0
(2)数组下标题目说的是不超过1000,然后我一开始设置的a[1000],然后Wrong Answer了,改成a[1001]对了......