社区讨论

调了半小时没调出赖,求救

B3862图的遍历(简单版)参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mm7ecmzj
此快照首次捕获于
2026/03/01 14:56
7 天前
此快照最后确认于
2026/03/01 14:57
7 天前
查看原帖
第五个点过了,其他的点TLEMLE,不知道该怎么优化了,求大佬帮忙
CPP
#include<iostream>
#include<vector>
using namespace std;
int N,M,U,V;
int dp[1005]={0};
vector<int> g[1005];
bool pd(int a,int b)
{
	for(int i=0;i<g[a].size();i++)
	{
		if(g[a][i]==b)
			return true;
	}
	return false;
}
int dfs(int node)
{
	if(dp[node]!=0)
		return dp[node];
	int max_node=node;
	for(int i=1;i<=N;i++)
	{
		if(pd(node,i))
			max_node=max(max_node,dfs(i));
	}
	dp[node]=max_node;
	return max_node;
}
int main()
{
	cin>>N>>M;
	for(int i=1;i<=M;i++)
	{
		cin>>U>>V;
		g[U].push_back(V);
	}
	for(int i=1;i<=N;i++)
	{
		cout<<dfs(i)<<" ";
	}
}

回复

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

正在加载回复...