Professional Documents
Culture Documents
#include <bits/stdc++.h>
int visit[100];
void dfs(int u) {
visit[u] = 1;
if (visit[v]==0) dfs(v);
topo.push(u);
int main() {
int m,n;
freopen("jobs.txt","r",stdin);
freopen("jobs.out","w",stdout);
while (m--) {
int u, v;
g[u].push_back(v);
if (!visit[i]) dfs(i);
int cnt = 0;
while (!topo.empty()) {
cout<<topo.top()<<" ";
topo.pop();
2.
#include<bits/stdc++.h>
class DisjointSet {
public:
DisjointSet(int n) {
parent.resize(n);
parent[i] = i;
int find(int x) {
if (parent[x] != x) {
parent[x] = find(parent[x]);
return parent[x];
if (rootX != rootY) {
parent[rootX] = rootY;
private:
vector<int> parent;
};
struct Edge {
int u, v, cost;
};
int main() {
int n, m;
freopen("connection.txt","r",stdin);
freopen("connection.out","w",stdout);
cin>>n>>m;
vector<Edge> edges(m);
}
sort(edges.begin(), edges.end(), compareEdges);
DisjointSet dsu(n);
int totalCost = 0;
vector<Edge> selectedEdges;
if (dsu.find(edge.u) != dsu.find(edge.v)) {
dsu.unionSets(edge.u, edge.v);
totalCost += edge.cost;
selectedEdges.push_back(edge);
cout << edge.u << " " << edge.v << " " << edge.cost << endl;