求助,无限循环找不出原因
  • 板块P1656 炸铁路
  • 楼主_ayaka_
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/1/5 20:07
  • 上次更新2024/1/5 22:00:34
查看原帖
求助,无限循环找不出原因
989571
_ayaka_楼主2024/1/5 20:07
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 2005;
struct edge {
	int to, next;
} w[maxn * 10];
int h[maxn], dfn[maxn], cnt = 0, low[maxn], n, m, scc, prt[maxn], num[maxn], stk[maxn], sign, f[maxn], my, mark[maxn][maxn], ans, root, son, bj, a, b;
bool vis[maxn];
void add(int x, int y) {
	w[++cnt].to = y;
	w[cnt].next = h[x];
	h[x] = cnt;
	w[++cnt].to = x;
	w[cnt].next = h[y];
	h[y] = cnt;
}
void dfs(int u) {
	sign++;
	dfn[u] = low[u] = sign;
	for (int v = h[u]; v; v = w[u].next) {
		int nxt = w[v].to;
		if (prt[u] != nxt) {
			if (!dfn[nxt]) {
				prt[nxt] = u;
				dfs(nxt);
				low[u] = min(low[u], low[nxt]);
				if (low[nxt] >= dfn[u]) {
					mark[u][nxt] = 1;
				}
			} else {
				low[u] = min(low[u], dfn[nxt]);
			}
		}
	}
}
signed main() {
	cin >> n >> m;
	int x, y;
	for (int i = 1; i <= m; i++) {
		cin >> x >> y;
		add(x, y);
	}
	dfs(1);
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			cout << i << " " << j << "\n";
		}
	}
	return 0;
}


2024/1/5 20:07
加载中...