社区讨论
16TLEMLE求条
B3862图的遍历(简单版)参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mm7eg20w
- 此快照首次捕获于
- 2026/03/01 14:59 7 天前
- 此快照最后确认于
- 2026/03/03 22:40 4 天前
实在不知道怎么优化了……
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)<<" ";
}
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...