1076. Forwards on Weibo (30)

来源:互联网 发布:电脑怎么连接宽带网络 编辑:程序博客网 时间:2024/05/22 14:11

    考虑BFS,需要注意的就是A follow B 形成的路径是 B->A,因为 A 关注 B 则 B发的微博可以被 A 转发,然后每次 query 的时候走一遍 BFS 查找。

#include <iostream>#include <cstdio>#include <vector>#include <queue>using namespace std;vector<vector<bool>> graph;int main(){int n, l, k;scanf("%d%d", &n, &l);graph.resize(n+1, vector<bool>(n+1, false));for(int i = 1; i <= n; ++i){int num, id;scanf("%d", &num);for(int j = 0; j < num; ++j){scanf("%d", &id);graph[id][i] = true;}}scanf("%d", &k);for(int i = 0; i < k; ++i){int id;scanf("%d", &id);queue<pair<int,int>> Q;Q.emplace(id, 0);vector<bool> used(n+1, false);used[id] = true;int sum = 0;// bfswhile(!Q.empty()){auto p = Q.front(); Q.pop();int u = p.first, level = p.second;if(level == l) break;for(int i = 1; i <= n; ++i){if(!used[i] && graph[u][i]){used[i] = true;++sum;Q.emplace(i, level+1);}}}printf("%d\n", sum);}return 0;}


0 0
原创粉丝点击