第五天PAT-A1076 Forwards on Weibo算法解析及详细注释

本文介绍了PAT A1076题目的算法解析,重点讲解了如何计算一个用户在微博上的最大潜在转发量,考虑到粉丝的间接层数限制。文章通过广度优先搜索(BFS)策略来统计,并给出了具体实现思路。
摘要由CSDN通过智能技术生成

A1076

Description:

众所周知,微博是中国版的推特。用户在微博上可能有许多粉丝,也可能粉许多人。因此就构建起了一个社交网络。当一个用户发一条微博时,他的所有粉丝可以看到并转发他的微博,也可以被这些粉丝再次转发。现在给出一个社交网络,请计算对于一个用户而言,其潜在的最大可能转发量,假设只有N层间接粉丝会被计算。

Input:

  • 每组测试一个测试样例;
  • 对于每个测试,首行给出两个正数:用户数N<=1000,可被计算到的简介粉丝层数L<=6。假设所有用户被编号为1-N;
  • 然后N行分别给出对应用户的粉丝列表,每人的粉丝数目<=100;
  • 保证自己无法关注自己;
  • 最后是一个正数K,表示查询个数,然后是K个查询的UserID

7 3
3 2 3 4
0
2 5 6
2 3 1
2 3 4
1 4
1 5
2 2 6

算法思想:

  • 以节点为存储单位,将所有关注者保存至vector属性中
  • 使用广搜统计人数
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
#include<queue>
using namespace std;
const int maxn = 1e3+5;
struct node{
   
    int level;  //用于遍历时确定层数
    vector<int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值