社区讨论

竟食后人(TLE[20,30])

P14578【模板】无源汇上下界可行流参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mkgt7u9i
此快照首次捕获于
2026/01/16 19:43
2 个月前
此快照最后确认于
2026/01/18 21:30
2 个月前
查看原帖
如果你一直TLE,可能是你偷懒用dep数组标记时dep[s]没有赋值正确。应该没人像我一样唐吧
CPP
bool bfs(int sc) {
	memset(dep, 0, sizeof (int) * (sc + 1));
	queue<int> q;
	q.push(s), dep[s] = 1;
	while (q.size()) {
		int u = q.front(); q.pop();
		for (int i = head[u]; ~i; i = g[i].nxt) 
			if (g[i].w && !dep[g[i].v]) q.push(g[i].v), dep[g[i].v] = dep[u] + 1;
	}
	return dep[t];
}
不能写成
CPP
bool bfs(int sc) {
	memset(dep, 0, sizeof (int) * (sc + 1));
	queue<int> q;
	q.push(s);//dep[s]赋值错误,导致可以倒回来更新dep[s]
	while (q.size()) {
		int u = q.front(); q.pop();
		for (int i = head[u]; ~i; i = g[i].nxt) 
			if (g[i].w && !dep[g[i].v]) q.push(g[i].v), dep[g[i].v] = dep[u] + 1;
	}
	return dep[t];
}

回复

1 条回复,欢迎继续交流。

正在加载回复...