PAT1076 Forwards on Weibo

原文:我的個人博客

原題鏈接

1076 Forwards on Weibo

考點

  圖的遍歷,廣度優先遍歷

思路

  簡單的廣搜就可以解決。在廣搜的過程中記錄所在的層次。

代碼

#include <bits/stdc++.h>
using namespace std;
vector<int> net[10010];
bool visit[10010];
int n,L,k,tmp;
int cnt=0;
struct node{
    int key;
    int layer;
};
 
void bfs(int root){
    queue<node>q;
    q.push(node{root,0});
    int layer=L;
    visit[root] = true;
    while(!q.empty()){
        node now = q.front();
        q.pop();
        for(int i=0;i<net[now.key].size();i++){
            if(visit[net[now.key][i]]==false&&now.layer<L){
                q.push(node{net[now.key][i],now.layer+1});
                visit[net[now.key][i]]=true;
                cnt++;
            } 
        }
    }
}
int main(){
 
    cin>>n>>L;
    for(int i=1;i<=n;i++){
        cin>>k;
        for(int j=0;j<k;j++){
            cin>>tmp;//ta
            net[tmp].push_back(i);
        }
    }
    int q;
    cin>>q;
    for(int i=0;i<q;i++){
        cin>>tmp;
        fill(visit,visit+10010,false);
        cnt=0;
        bfs(tmp);
        cout<<cnt<<endl;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章