海底捞(站外提求助!!!!!!!!!!!!!!!)
  • 板块学术版
  • 楼主封禁用户
  • 当前回复2
  • 已保存回复3
  • 发布时间2024/4/10 20:11
  • 上次更新2024/4/10 21:55:18
查看原帖
海底捞(站外提求助!!!!!!!!!!!!!!!)
788434
封禁用户楼主2024/4/10 20:11

#include<bits/stdc++.h>
using namespace std;
const int N = 200010; 
int inDeg[N], cnt, f=-1;
vector<int> adj[N];
void topoSort(int n) {
    priority_queue<int,vector<int>,greater<int> > que;
    for (int i = 1; i <= n; i++) {
        if (inDeg[i] == 0) que.push(i);
    }
    while (!que.empty()) { 
        int u = que.top(); 
        printf("%d ", u);
        f=1;
        que.pop();
        cnt++;
        for (int i = 0; i < adj[u].size(); i++) {
            int v = adj[u][i];
            inDeg[v]--;
            if (inDeg[v] == 0) {
                que.push(v);
            }
        }
    }
    if(cnt!=n)cout<<-1;
}
int main() {
	ios :: sync_with_stdio(0);
	cin.tie(0);
    int n, m;
    cin >> n >> m; 
    for (int i = 0; i < m; i++) {
        int u, v;
        cin >> u >> v; 
        adj[u].push_back(v);
        inDeg[v]++;
    }
    topoSort(n);
    return 0;
}

hack数据:

3 4
1 3
2 3
2 4

out:

1 2 3 4 -1 

实际没有 −1-1。

why???

2024/4/10 20:11
加载中...