浙大PAT甲级 1106 广度优先搜索
来源:互联网 发布:polycom软件下载 编辑:程序博客网 时间:2024/05/21 19:32
用vector数组来存储每个点的子节点编号,然后通过广度优先搜索从根结点开始,来寻找最小的深度的根,并统计个数。
AC代码:
#include<iostream>#include<map>#include<cstdio>#include<algorithm>#include<queue>#include<cstring>#include<set>#include<stack>#include<cmath>#include<vector>#include<hash_map>#define ll long long#define inf 24*60*60using namespace std;struct node{ int id; int lay=0;};vector<node> v[100000];int mark=100000000;int ans=0;void bfs(int x){ queue<node> q; node tmp; tmp.id=0; q.push(tmp); while(!q.empty()) { node t=q.front(); q.pop(); if(t.lay>mark) { break; } if(v[t.id].empty()) { mark=t.lay; ans++; continue; } for(int i=0;i<v[t.id].size();i++) { v[t.id][i].lay=t.lay+1; q.push(v[t.id][i]); } }}int main(){ int n; double p,r; scanf("%d %lf %lf",&n,&p,&r); for(int i=0;i<n;i++) { int k; scanf("%d",&k); for(int j=0;j<k;j++) { node tmp; scanf("%d",&tmp.id); v[i].push_back(tmp); } } bfs(0); printf("%.4lf %d",p*pow(1+r/100,mark),ans);}
0 0
- 浙大PAT甲级 1106 广度优先搜索
- 1091. Acute Stroke (30)-PAT甲级真题(广度优先搜索)
- 浙大pat甲级 1023
- 浙大pat甲级 1024
- 浙大pat甲级 1025
- 浙大PAT甲级 1026
- 浙大PAT甲级 1028
- 浙大PAT甲级 1029
- 浙大PAT甲级 1030
- 浙大PAT甲级 1031
- 浙大PAT甲级 1032
- 浙大PAT甲级 1033
- 浙大PAT甲级 1035
- 浙大PAT甲级 1037
- 浙大PAT甲级 1039
- 浙大PAT甲级 1040
- 浙大PAT甲级 1038
- 浙大PAT甲级 1041
- HDOJ 5744 Keep On Movin
- git与svn对比
- [LeetCode] 140. Word Break II
- RxJava操作符(一)Creating Observables
- Genymotion安装与集成开发指南
- 浙大PAT甲级 1106 广度优先搜索
- VT系列二:检测是否支持虚拟化
- 设置EditText 游标的位置
- iReport报表开发
- RxJava操作符(二)Transforming Observables
- Cassandra入门
- 浅析递推(递推专练题解)
- Android实现网络图片app
- 版本控制——git的一些基本命令杂录(一)