#include #include #include

using namespace std;

const int N = 1010;

int n, m; int in_degree[N], fans[N], follow[N]; vector adj[N];

void topo_sort() { queue q; for (int i = 0; i < n; i++) { if (in_degree[i] == 0) { q.push(i); fans[i] = 0; } } while (!q.empty()) { int u = q.front(); q.pop(); for (int i = 0; i < adj[u].size(); i++) { int v = adj[u][i]; in_degree[v]--; fans[v] += fans[u] + 1; if (in_degree[v] == 0) { q.push(v); } } } }

int main() { cin >> n >> m; for (int i = 0; i < m; i++) { int a, b; cin >> a >> b; adj[b].push_back(a); in_degree[a]++; follow[a]++; } topo_sort(); for (int i = 0; i < n; i++) { cout << fans[i] - follow[i] << endl; } return 0; }

C++ 拓扑排序算法实现:蒜头君的互粉游戏人气指数计算

原文地址: https://www.cveoy.top/t/topic/nP6f 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录