可以发现,在板子题里面题解的核心代码大多是如下所示(选的第一篇题解的代码):
void dfs(int now)
{
for(int i=del[now];i<G[now].size();i=del[now])
{
del[now]=i+1;
dfs(G[now][i]);
}
st.push(now);
}
而在这道题里又有大多的如下代码(还是第一篇):
inline void dfs(int x){
for(res i=0;i<N;i++)
if(G[x][i])G[x][i]=G[i][x]=0,dfs(i);
rb[n--]=x;
}
自然,存图方式是不一样的,可是如果这道题用 vector 存的话用板子题的方式却又无法得到正确答案,求问这是否是有向图和无向图的区别?如果是的话,那么当无向图必须开 vector 时又该如何删边?