拓扑排序算法的 c++ 代码如下:

#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++代码:蒜头君和他的同事们最近在玩一个好玩的游戏:互粉攻略。一共有 NN 个人参加游戏编号从 00 到 N - 1N−1游戏前每个人都会展示自己最靓丽的一面。当游戏开始时每个人可以选择去关注别人。当 AA 关注了 BB则 AA 就成了 BB 的粉丝但是并不意味着 BB 同时关注了 AA。当所有人都选好后游戏结束人气指数最高的人成为冠军。蒜头君制定了奇怪的规定

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

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