#include \n#include \n#include \nusing namespace std;\n\nint main() {\n int n, m;\n cin >> n >> m;\n \n vector<vector> queues(n+1);\n vector inQueue(n + 1, false);\n \n for (int i = 1; i <= n; i++) {\n queues[i].push_back(i);\n inQueue[i] = true;\n }\n \n for (int i = 0; i < m; i++) {\n int a, b;\n cin >> a >> b;\n \n if (inQueue[b]) {\n for (int j = 0; j < queues[b].size(); j++) {\n queues[a].push_back(queues[b][j]);\n inQueue[queues[b][j]] = true;\n }\n inQueue[b] = false;\n queues[b].clear();\n }\n }\n \n vector<vector> result;\n for (int i = 1; i <= n; i++) {\n if (inQueue[i]) {\n result.push_back(queues[i]);\n }\n }\n \n sort(result.begin(), result.end(), [](const vector& a, const vector& b) {\n return a[0] < b[0];\n });\n \n cout << result.size() << endl;\n for (int i = 0; i < result.size(); i++) {\n for (int j = 0; j < result[i].size(); j++) {\n cout << result[i][j] << " ";\n }\n cout << endl;\n }\n \n return 0;\n}

排队1 - C++ 代码实现 - 队列合并算法

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

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