PAT (Advanced Level) Practice - 1076 Forwards on Weibo(30 分)
发布日期:2021-06-30 23:43:12 浏览次数:2 分类:技术文章

本文共 711 字,大约阅读时间需要 2 分钟。

题目链接:

 

题目大意:给出每个用户关注的人的 id 和转发最多的层数,求一个 id 发了条微博最多会有多少个人转发?

 

解题思路:带层数的广度优先,因为一个用户只能转发一次,所以用 vis 判断当前结点是否入队过了,如果入队过了就不能重复入队(重复转发消息),控制不超过 L 层。

 

AC 代码

#include
#include
#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007using namespace std;typedef long long ll;const int maxn=1010;struct node{ int id,lvl; node(){} node(int id,int lvl):id(id),lvl(lvl){}};int n,l;vector
v[maxn];int bfs(int id){ int cnt=0, vis[maxn]={0}; vis[id]=1; queue
q; q.push(node(id,0)); node nd; while(!q.empty()) { nd=q.front(); q.pop(); int tid=nd.id, lvl=nd.lvl; for(int i=0;i

 

转载地址:https://lux-sun.blog.csdn.net/article/details/82055957 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:PAT (Advanced Level) Practice - 1038 Recover the Smallest Number(30 分)
下一篇:PAT (Advanced Level) Practice - 1030 Travel Plan(30 分)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年05月05日 12时02分27秒