哪个网站可以做销售记录仪,中国电子商务中心官网,php网站制作流程,网络营销速成培训班目录
查找文献
图的遍历 查找文献
P5318 【深基18.例3】查找文献 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路#xff1a;这道题就是先建图#xff0c;然后dfs深搜输出#xff0c;bfs宽搜输出就行了
完整代码#xff1a;
#include bits/stdc.h
#defi…目录
查找文献
图的遍历 查找文献
P5318 【深基18.例3】查找文献 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路这道题就是先建图然后dfs深搜输出bfs宽搜输出就行了
完整代码
#include bits/stdc.h
#define int long long
const int N 1e6 10;
std::vectorstd::vectorint g(N);//建一个二维数组输入x,y 把y放进x里面
int n, m;
bool vis[N]{};
void dfs(int cur) {std::cout cur ;//到了哪一层就输出哪一层vis[cur] true;for (int i 0; i (int) g[cur].size(); i)//遍历这一个节点连接的所有文献{if (vis[g[cur][i]] false)//如果还没有输出dfs(g[cur][i]);//继续搜索}
}
void bfs() {memset(vis, 0, sizeof(vis));//清空上一层dfs的std::queueint q;//建一个队列q.push(1);//因为是从1号节点开始所以把1放进去vis[1] true;//标记后面的就不能走这条路了while (!q.empty()) {int cur q.front();q.pop();std::cout cur ;for (int i 0; i (int) g[cur].size(); i) {if (vis[g[cur][i]] false) {q.push(g[cur][i]);vis[g[cur][i]] true;}}}
}
signed main() {std::cin n m;//输入数据for (int i 1; i m; i) {int x, y;std::cin x y;g[x].push_back(y);//把y放进x里面}for (int i 1; i n; i) {std::sort(g[i].begin(), g[i].end());//一个节点可能连了多个文献所以对这一个节点的文献进行排序}dfs(1);//从1号点开始搜索std::cout \n;bfs();return 0;
} 图的遍历
P3916 图的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路这道题反向建图然后依次遍历输出答案就可以了
完整代码
#include bits/stdc.h
#define int long long
const int N 1e5 10;
std::vectorstd::vectorint g(N);
int n, m;
int a[N];
void dfs(int cur,int d)
{if(a[cur]!0)return;a[cur]d;for(int i 0;i g[cur].size();i ){dfs(g[cur][i],d);}
}
signed main() {std::cin n m;for (int i 1; i m; i) {int x, y;std::cin x y;g[y].push_back(x);}for (int i n; i 1; i--) {dfs(i,i);}for(int i 1;i n;i ){std::couta[i] ;}return 0;
}