萌新问第三遍WA 50pts鸡翼化搜索求条
  • 板块P3916 图的遍历
  • 楼主IaLWH
  • 当前回复0
  • 已保存回复1
  • 发布时间2024/8/14 16:07
  • 上次更新2024/8/14 18:00:35
查看原帖
萌新问第三遍WA 50pts鸡翼化搜索求条
486727
IaLWH楼主2024/8/14 16:07

加了排序还是过不去

#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
vector<vector<int> >li;
vector<int>mx;

void dfs(int x) {
	if(mx[x])return;
	mx[x]=x;
	for(int i=0; i<li[x].size(); i++) {
		dfs(li[x][i]);
		if(mx[li[x][i]]>mx[x])
			mx[x]=mx[li[x][i]];
	}
}
int main() {
	int n,m,u,v;
	scanf("%d%d",&n,&m);
	li.resize(n+1);
	mx.resize(n+1);
	for(int i=0; i<m; i++) {
		scanf("%d%d",&u,&v);
		li[u].push_back(v);
	}
	for(int i=1;i<=n;i++)
		if(li[i].size()>1)
			sort(li[i].begin(),li[i].end());
	for(int i=1; i<=n; i++) {
		dfs(i);
		printf("%d ",mx[i]);
	}
	return 0;
}
2024/8/14 16:07
加载中...