T2 WA60什么肥四

#include<iostream>
#include<queue>
using namespace std;
int n,a,b,st;
int fa[10000+10],deep[10000+10];
vector<int> g[10000+10];
void bfs(int st){
	queue<int> q;
	q.push(st);
	while(!q.empty()){
		int u=q.front(); q.pop();
		for(int i=0;i<g[u].size();i++){
			int v=g[u][i];
			if(v!=fa[u]){
				deep[v]=deep[u]+1;
				q.push(v);
			}
		}
	}
	return ;
}
int main(){
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)
		fa[i]=-1;
	for(int i=1;i<=n;i++)
		deep[i]=1;
	int u,v;
	while(cin>>u){
		while(cin.peek()!='\n'&&cin>>v){
			fa[v]=u;
			g[u].push_back(v);
			g[v].push_back(u);
		}
	}
	for(int i=1;i<=n;i++)
		if(fa[i]==-1)
			st=i;
	bfs(st);
	if(deep[a]<deep[b])
		swap(a,b);
	int tmp=deep[a]-deep[b];
	while(tmp--)
		a=fa[a];
    // cout<<a<<" "<<b;
	while(true){
		if(a==b) break;
		a=fa[a];
		b=fa[b];
	}
	cout<<a;
	return 0;
}

好神奇啊,为什么我让他自动测评测试点是错的,但是我手动测是对的

可以在你们那里试试对不对

题面

咋了

给我题面帮你看看

1 个赞

我复制了测试样例的1~7,本地输出是对的,交上去RE

我是本地对的,交上去错了,不知道怎么回事。第二个样例本地输出2,评测输出1

私聊@彭

我试试我的code加你的输入

这题输入太恶心了

呃……

洛谷@彭

1 个赞

看私信

用getline输入,可以把这一行的所有输入都放在一个字符串内
具体方法是

string s;
getline(cin,s);

然后处理
A了给方案呗

此话题已在最后回复的 15 天后被自动关闭。不再允许新回复。