strongcoment.cpp
来自「求有向图的强连通分量」· C++ 代码 · 共 49 行
CPP
49 行
#include <iostream>
using namespace std;
#define maxn 1024
int g[maxn][maxn], n, mk[maxn], list[maxn], num;
void back(int u)
{
mk[u]=1;
cout << u << " ";
for(int v=1; v<=n; v++)
if(!mk[v] && g[v][u]) back(v);
}
void dfs(int u)
{
mk[u]=1;
for(int v=1; v<=n; v++)
if(!mk[v] && g[u][v]) dfs(v);
list[num--] = u;
}
int main()
{
int i, j, k, l;
cin>>n;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
cin >> g[i][j];
memset(mk, 0, sizeof(mk));
num = n;
for(i=1; i<=n; i++)
if(!mk[i])
dfs(i);
memset(mk, 0, sizeof(mk));
for(i=1; i<=n; ++i)
cout << list[i] << endl;
for(i=1; i<=n; i++)
if(!mk[list[i]])
{
back(list[i]);
cout << endl;
}
cin >> j; //pause
return 0 ;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?