描述
给出一个 n 个顶点的有向图,顶点编号从 1∼n。
从 1 号顶点出发,求该图每个顶点的 pre 值和 post 值。
温馨提示:时钟从 1 开始。
输入描述
第一行给出这个图的顶点数 n (1≤n≤1000)
第二行给出这个有向图的边数 e (0≤e≤100000)
第三行开始,共 e 行,每行两个正整数 a b,表示从顶点 a 发出一条弧到顶点 b 。
输出描述
两行,第一行:1 号顶点的 pre 值,2 号顶点的 pre 值,…,n 号顶点的 pre 值。每个值后面跟一个空格。
第二行:1 号顶点的 post 值,2 号顶点的 post 值,…,n 号顶点的 post 值。每个值后面跟一个空格。
一道简单的oj题,话不多说,上代码
#include<iostream>
#include<cstring>
using namespace std;
int n;//顶点数
int b[1005];//存储这个点走过没有
int a[1005][1005];//邻接矩阵
int pre[1005],post[1005];
int c=1;//初始时间
//用c来指代时间的流动,t表示第几个顶点
void jisuan(int t){
//从第一个点开始
b[t]=1;
pre[t]=c++;//第一个的访问时间
for(int i=1;i<=n;i++)
//如果这个点没有被走过并且存在弧
if(b[i]==0&