原题链接:分糖果
解题思路:
注意事项:
参考代码:、
#include<stdio.h> #include<string.h> #include<iostream> #include<queue> using namespace std; typedef struct{ int v; int step; }node; vector <int> g[100005]; int n, m, s, eat, ans; int visit[100005]; void init(); void read(); void bfs(int s); int main(){ scanf("%d %d %d", &n, &m, &s); scanf("%d", &eat); init(); read(); memset(visit, 0, sizeof(visit)); bfs(s); printf("%d\n", ans + eat); return 0; } void bfs(int s){ int i, cur; queue <node> Q; node p, q; p.v = s; p.step = 1; visit[s] = 1; Q.push(p); while(!Q.empty()){ q = Q.front(); Q.pop(); cur = q.v; for(i = 0; i < g[cur].size(); i++){ p.v = g[cur][i]; if(!visit[p.v]){ p.step = q.step + 1; Q.push(p); visit[p.v] = 1; } } ans = q.step; } } void read(){ int i, j, k; for(i = 0; i < m; i++){ scanf("%d %d", &j, &k); g[j].push_back(k); g[k].push_back(j); } } void init(){ int i; for(i = 1; i <= n; i++) g[i].clear(); }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复