小蒟蒻不知道哪里错了,50pts求助!!!!
  • 板块题目总版
  • 楼主Pumpk1n
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/17 20:35
  • 上次更新2024/6/17 20:57:40
查看原帖
小蒟蒻不知道哪里错了,50pts求助!!!!
815835
Pumpk1n楼主2024/6/17 20:35
#include <bits/stdc++.h>
using namespace std;
int dfn[106],low[106],tot,n,u,v,s,t;
bool pos[106];
vector<int> e[106];
void dfs(int u,int fa){
	int chil = 0;
	dfn[u] = low[u] = ++tot;
	for(int &v:e[u]){
		if(!dfn[v]){
			dfs(v,u);
			low[u] = min(low[u],low[v]);
			if(dfn[u] <= low[v])
				chil++;
		}else low[u] = min(low[u],dfn[v]);
	}
	if(chil > 1||(fa&&chil))
		pos[u] = 1;
}
void tarjan(){
	dfs(s,0);
	for(int i = 1;i <= n; i++){
		if(i == s||i == t) continue;
		if(dfn[i]&&pos[i]&&dfn[i] < dfn[t]){
			cout << i;
			exit(0);
		}
	}
}
void solve(){
	cin >> n;
	while(1){
		cin >> u >> v;
		if(u == 0&&v == 0) break;
		e[u].push_back(v);
		e[v].push_back(u);
	}
	cin >> s >> t;
	tarjan();
	cout << "No solution";
}
main(){
	solve();
	return 0;
}

救我蒻命啊

帮帮我吧..QwQ

2024/6/17 20:35
加载中...