社区讨论

全WAdfs求调

P3174[HAOI2009] 毛毛虫参与者 1已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@mhjkpwli
此快照首次捕获于
2025/11/04 04:09
4 个月前
此快照最后确认于
2025/11/04 04:09
4 个月前
查看原帖
代码放这了
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,vis[300001],maxn=0,vis2[300001],leaf[300001],s=0;
vector<int> e[300001];
void dfs(int x,int ans){
	if(ans>maxn) maxn=ans;
	vis[x]=1;
	for(int i:e[x]){
		if(vis[i]!=1) dfs(i,ans+e[x].size());
	}
}
void yj(int x){
	vis2[x]=1;
	if(e[x].size()==0) leaf[++s]=x;
	for(int i:e[x]){
		if(vis2[i]!=1) yj(i);
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v;
		cin>>u>>v;
		e[u].push_back(v);
		e[v].push_back(u);
	}
	yj(1);
	for(int i=1;i<=s;i++) dfs(leaf[i],0);
	cout<<maxn;
}

回复

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

正在加载回复...