#include <cstdio>
#include <queue>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <set>
using namespace std;
const int maxv = 2011,inf = 1<<30;
struct node
{
int data;
int lay;
};
int G[maxv][maxv] = {0},n,l;
bool vis[maxv] = {false};
int Bfs(int uid)
{
node topN;
topN.data = uid;
topN.lay = 0;
int ans = 0;
queue<node>q;
q.push(topN);
vis[uid] = true;
while(!q.empty())
{
node s = q.front();
q.pop();
// vis[s] = true;
// if(layer > l)
// break;
for(int i = 1;i<=n;i++)
{
if(G[s.data][i] == 1 && vis[i] == false && s.lay < l)
{
vis[i] = true;
ans++;
node t;
t.data = i;
t.lay = s.lay + 1;
q.push(t);
}
}
}
return ans;
}
int main()
{
freopen("1.txt","r",stdin);
scanf("%d%d",&n,&l);
for(int i = 1;i<=n;i++)
{
int t;
scanf("%d",&t);
for(int j=0;j<t;j++)
{
int fid;
scanf("%d",&fid);
// G[i][fid] = 1;
G[fid][i] = 1;
}
}
int k;
scanf("%d",&k);
for(int i=0;i<k;i++)
{
fill(vis,vis+maxv,0);
int uid;
scanf("%d",&uid);
printf("%d\n",Bfs(uid));
}
return 0;
}
1076 Forwards on Weibo (30 分)(***)
猜你喜欢
转载自blog.csdn.net/qq_15556537/article/details/101176536
今日推荐
周排行