喊山
来源:互联网 发布:阳台 知乎 编辑:程序博客网 时间:2024/04/28 03:41
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <vector>using namespace std;#define maxn 10000+10vector <int> e[maxn];int vis[maxn];int n;struct lala{ int to,time;};int bfs(int gg){ queue <lala> q; q.push((lala){gg,0}); while(!q.empty()) { lala t=q.front(); q.pop(); if(vis[t.to]!=-1) continue;//这里为什么vis的初始化不是0而是-1,因为这里,为了避免起点再次出现 vis[t.to]=t.time; for(int i=0;i<e[t.to].size();i++) { int h=e[t.to][i]; if(vis[h]==-1) q.push((lala){h,t.time+1}); } } int minn=vis[1],kk=1; for(int i=2;i<=n;i++)//这样我们就可以取到相同距离,编号最小的 { if(vis[i]>minn) {minn=vis[i];kk=i;} } if(minn==0)//还是0,因为起点的time是0嘛 kk=0; return kk;}int main(){ int m,k; scanf("%d %d %d",&n,&m,&k); for(int i=0;i<m;i++) { int from,to; scanf("%d %d",&from,&to); e[from].push_back(to); e[to].push_back(from); } for(int i=0;i<k;i++) { int gg; scanf("%d",&gg); memset(vis,-1,sizeof(vis)); int hh=bfs(gg); printf("%d\n",hh); } return 0;}
0 0
- 喊山
- 喊山
- 喊山
- 喊山
- L3-008. 喊山
- pat-喊山
- PTA 一 喊山
- PTA 喊山 bfs
- L3-008. 喊山
- L3-008. 喊山
- L3-008. 喊山
- L3-008. 喊山
- L3-008. 喊山 天梯初赛
- 喊山 (bfs)邻接表存
- L3-008. 喊山 天梯初赛
- 天梯赛 L3-008. 喊山
- CCCC 喊山 最短路+重载运算符
- PAT L3-008. 喊山(BFS)C4 初赛
- C++关键字之override
- mac常用快捷键
- 【PostgreSQL-9.6.3】数据库的启动、登录、退出、关闭
- 学习Linux系统的方法经验
- W/System: ClassLoader referenced unknown path: /data/app/com.example.download-2/lib/x86
- 喊山
- euqals()和==的那点事儿
- 初识.net界面程序(1)——密码输入和显示练习
- VM虚拟机使用主机shadowsocks代理上网
- Path从懵逼到精通——贝塞尔曲线
- char,unsigned char和signed char三种数据类型的区别
- C语言好难——几个宏定义__DATE__,__TIME__,__FILE__,__LINE__
- ORM “杀器”之 JOOQ
- block的使用