社区讨论
调了半小时没调出赖,求救
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 条回复,欢迎继续交流。
正在加载回复...