P1137 旅行计划-----洛谷

时间:2023-03-09 22:33:52
P1137 旅行计划-----洛谷

用了STL,其他的没什么,赤裸裸的拓扑排序

下面给出代码

 #include<cstdio>
 #include<iostream>
 #include<vector>
 #include<stack>
 using namespace std;
 int n,m,u,v;
 +],dis[+];
 vector<+];
 stack<int>str ;

 int main(){
     cin >> n >> m;
     while(m--){
         scanf("%d%d", &u, &v);
         du[v]++;
         map[u].push_back(v);   //使用不定长减少使用的数组 ,单向联通
     }
     ; i <= n; i++)  //  统计 0的数量
        ){
               str.push(i);
               dis[i] = ;
        }
     while( !str.empty()){                //DFS搜索
         u = str.top();str.pop();
          ; i < map[u].size() ;i++){
             v = map[u][i] ;
             dis[v] = max( dis[v],dis[u] + );
             du[v] --;
             )str.push(v);
         }
     }
      ;i <= n; i++)printf("%d\n",dis[i]);
     printf("\n");
     ;
 }