江苏建设网官方网站,入侵WordPress网站,上海最新新闻发布会,好的排版设计网站图的存储
B3643 图的存储 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路#xff1a;mp[n][n]用来存邻接矩阵#xff0c;二维vector用来存每个点连的点
完整代码#xff1a;
#include bits/stdc.h
#define int long long
const int N 1e5 10;
int n, m;
…
图的存储
B3643 图的存储 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路mp[n][n]用来存邻接矩阵二维vector用来存每个点连的点
完整代码
#include bits/stdc.h
#define int long long
const int N 1e5 10;
int n, m;
std::vectorstd::vectorint g(N);
signed main() {std::cin n m;int mp[n 10][n 10];memset(mp, 0, sizeof(mp));for (int i 0; i m; i) {int u, v;std::cin u v;g[u].push_back(v);//里面装的是u能到的点u能到vg[v].push_back(u);//v能到ump[u][v] 1;mp[v][u] 1;}for (int i 1; i n; i) {for (int j 1; j n; j) {std::cout mp[i][j] ;}std::cout \n;}for (int i 1; i n; i) {std::sort(g[i].begin(), g[i].end());}for (int i 1; i n; i) {std::cout g[i].size() ;for (int j 0; j g[i].size(); j) {std::cout g[i][j] ;}std::cout \n;}return 0;
}
图的遍历
P3916 图的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路反向建图用dfs确定每一个点最大可以到达哪一个点然后按顺序输出
完整代码
#include bits/stdc.h
#define int long long
const int N 1e5 10;
std::vectorstd::vectorint g(N);
int vis[N];
void dfs(int x, int y) {if (vis[x] ! 0)return;else {vis[x] y;for (int i 0; i g[x].size(); i) {dfs(g[x][i], y);}}
}
signed main() {int n, m;std::cin n m;for (int i 1; i m; i) {int u, v;std::cin u v;g[v].push_back(u);}for (int i n; i 1; i--) {dfs(i, i);}for (int i 1; i n; i) {std::cout vis[i] ;}return 0;
}