1076. Forwards on Weibo

来源:互联网 发布:淘宝客qq群拉人 编辑:程序博客网 时间:2024/05/24 07:30

DFS有2个用例一直过不了,BFS又很神奇的死活都不对。。。跪了。。照着别人的改的

#include <iostream>#include <stdlib.h>#include <list>#include <queue>#include <stdio.h>using namespace std;struct Node{    int level;    list<int> followers;};Node *users;int n, level;//BFSint post(int root){    int sum = 0;    queue<int> visit;    list<int>::const_iterator itr;    bool *visited = new bool[n];    for(int i = 0; i < n; i++)        visited[i] = false;    visit.push(root);    visited[root] = true;    while(!visit.empty())    {        int node = visit.front();        visit.pop();        if(users[node].level > level)            break;        sum++;        for(itr = users[node].followers.begin(); itr != users[node].followers.end(); ++itr)        {            int follow = (*itr);            if(!visited[follow])            {                users[follow].level = users[node].level+1;                visited[follow] = true;                visit.push(follow);            }        }    }    return sum-1;}int main(){    int nums;    int user;    int root;    int m;    cin >> n >> level;    users = new Node[n];    for(int i = 0; i < n; i++)    {        cin >> nums;        for(int j = 0; j < nums; j++)        {            cin >> user;            users[user-1].followers.push_back(i);        }    }    cin >> m;    for(int i = 0; i < m; i++)    {        cin >> root;        for(int j = 0; j < n; j++)            users[j].level = 0;        cout << post(root-1) << endl;    }    return 0;}


0 0