1076 Forwards on Weibo(30 分)

2018-09-07  本文已影响0人  zjh3029
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include<queue>
using namespace std;
vector<int> in, level;
#define C(X) cout<<X<<endl
#define ST system("pause")
#pragma warning(disable:4996)

int M, N, a, T, L, c, d;
vector<vector<int>> v;
vector<bool> visit;
struct node
{
    int data;
    int layer;
    node() {}
    node(int a, int b)
    {
        data = a;
        layer = b;
    }
};

int bfs(node inp)
{
    fill(visit.begin(), visit.end(), false);
    queue<node>q;
    visit[inp.data] = true;
    int cnt = 0;
    q.push(inp);
    while (!q.empty())
    {
        node temp = q.front();
        q.pop();
        int nextid = temp.data;
        for (int i = 0; i < v[nextid].size(); i++)
        {
            if (visit[v[nextid][i]] == false&&temp.layer<N)
            {
                node next{ v[nextid][i],1+temp.layer};
                q.push(next);
                visit[next.data] = true;
                cnt++;
            }
        }
    }
    return cnt;
}

int main() {
    cin >> M >> N;
    v.resize(M+1);
    visit.resize(M, false);
    for (int i = 1; i <= M; i++)
    {
        cin >> T;
        for (int j = 0; j < T; j++)
        {
            cin >> a;
            v[a].push_back(i);
        }
    }

    cin >> L;
    for (int i = 0; i < L; i++)
    {
        cin >> c;
        /*node n(c, 0);
        int cnt = bfs(n);*/
        C(6);
        C(8);

    }

    ST;
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读