1004 (BFS,DFS) vector
来源:互联网 发布:win10端口设置在哪里 编辑:程序博客网 时间:2024/06/04 22:09
正好通过PAT好好学习了下c++
这些代码都是我边读边理解算法和c ++,侵删,柳婼姐一定不会生气的
这段代码很好的诠释了DFS的思想
#include <cstdio>#include <vector>#include <algorithm>using namespace std;vector<int> v[100];int book[100], maxdepth = -1;void dfs(int index, int depth) { if(v[index].size() == 0) { //顶到头结束递归 book[depth]++;//这层的叶子结点加一个 maxdepth = max(maxdepth, depth); //求一个最大深度 return ; } for(int i = 0; i < v[index].size(); i++) dfs(v[index][i], depth + 1);}int main() { int n, m, k, node, c; scanf("%d %d", &n, &m); for(int i = 0; i < m; i++) { scanf("%d %d",&node, &k); for(int j = 0; j < k; j++) { scanf("%d", &c); v[node].push_back(c); } } dfs(1, 0); printf("%d", book[0]);//先输出第0层的 for(int i = 1; i <= maxdepth; i++) printf(" %d", book[i]); return 0;}
太好了,BFS也想起来了。
#include <cstdio>#include <queue>#include <vector>#include <algorithm>using namespace std;int level[100], book[100], maxlevel = -1;vector<int> v[100];void bfs() { queue<int> q; q.push(1); level[1] = 0; //这个点所在的层数 while(!q.empty()) { int index = q.front(); q.pop(); maxlevel = max(level[index], maxlevel); if(v[index].size() == 0) book[level[index]]++; for(int i = 0; i < v[index].size(); i++) { q.push(v[index][i]);//先把这一层的全部弹入,再一个一个弹出 level[v[index][i]] = level[index] + 1; } }}int main() { int n, m, k, node, c; scanf("%d %d", &n, &m); for(int i = 0; i < m; i++) { scanf("%d %d",&node, &k); for(int j = 0; j < k; j++) { scanf("%d", &c); v[node].push_back(c); } } bfs(); printf("%d", book[0]); for(int i = 1; i <= maxlevel; i++) printf(" %d", book[i]); return 0;}
阅读全文
0 0
- 1004 (BFS,DFS) vector
- hdu4707 Pet(bfs & dfs,vector)
- 图(领接矩阵和vector)的dfs和bfs
- uva10004(bfs||dfs)
- bfs+dfs(poj3083)
- zoj3736(bfs&&dfs)
- poj1426(bfs dfs)
- hdu1242Rescue(BFS and DFS)
- 10557 - XYZZY(dfs + bfs)
- 搜索 (bfs,dfs) 总结
- (BFS+DFS)Robot Navigation
- BFS+DFS(hdu 1044)
- POJ 3083(DFS+BFS)
- FZU 2150(DFS+BFS)
- hdu1241Oil Deposits(dfs&&bfs)
- poj2386(BFS与DFS)
- DFS and BFS (一)
- POJ 3083 (bfs + dfs)
- #include<filename.h> 和 #include"filename.h"有什么区别
- K:设计模式—绪论
- Historical Sales and Active Inventory kaggle
- POJ
- TCP为什么要三次握手?为什么要有四次挥手的TIME_WAIT?
- 1004 (BFS,DFS) vector
- Mybatis关于<foreach>中的index判断提示“Inappropriate OGNL expression”
- 关于Linux用户的一些介绍
- 模板方法模式(Template Method Pattern)——封装算法
- CMenu类中禁用-变灰某一项
- bzoj2809: [Apio2012]dispatching
- ABAP EVENT 事件
- 为什么神经网络现在这么火
- HBase坑三java代码进行操作报错hbase Caused by: java.net.ConnectException: Connection refused: no further inform