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