社区讨论
离谱RE
P1137旅行计划参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lot88ejs
- 此快照首次捕获于
- 2023/11/11 07:06 2 年前
- 此快照最后确认于
- 2023/11/11 10:35 2 年前
CPP
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N=2e6+5;
vector<int> e[N];
int a[N],c[N],n,m,tot,dp[N];
queue<int > Q;
void topsort(){
for(int i=1;i<=n;i++){
if(c[i]==0){Q.push(i),a[++tot]=i;}
}
while(!Q.empty()){
int u=Q.front();
Q.pop();
for(int i=0;i<e[u].size();i++){
int v=e[u][i];
c[v]--;
if(c[v]==0)Q.push(v),a[++tot]=v;
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y;cin>>x>>y;
e[x].push_back(y);
c[y]++;
}
topsort();
for(int i=1;i<=n;i++)dp[i]=1;
for(int i=1;i<=n;i++){
int x=a[i];
for(int j=0;j<e[x].size();j++){
int y=e[i][j];
dp[y]=max(dp[y],dp[x]+1);
}
}
for(int i=1;i<=n;i++)cout<<dp[i]<<endl;
return 0;
}
样例过了,但是全RE
回复
共 3 条回复,欢迎继续交流。
正在加载回复...