```python
from collections import defaultdict
class Gragh:
def __init__(self,n,m) -> None:
self.V = n
self.E = m
self.g = defaultdict(list)
self.vis = [False]*(n+1)
self.A = [-1]*(n+1)
def addedge(self,u,v):
self.g[u].append(v)
def dfs(self,x,root): # x为当前节点 root为dfs开始的节点
if self.vis[x]:
return
self.vis[x] = True
self.A[x] = root
for v in self.g[x]:
if not self.vis[v]:
self.dfs(v,root)
maxn = 100100
n,m = map(int, input().split())
gragh = Gragh(n,m)
for i in range(1,m+1):
u,v = map(int,input().split())
gragh.addedge(v,u)
for i in range(n,0,-1):
# n节点能到的最大编号最小也是n
gragh.dfs(i,i)
for i in range(1,n+1):
print(gragh.A[i],end=" ")
```
我也是第8个点RE,看有没有大佬路过吧。。。
by MaybeLL @ 2023-04-27 13:36:03
我也喜欢jk
by Molie @ 2023-05-27 21:11:07