zoukankan      html  css  js  c++  java
  • Forwards on Weibo (30)

    BFS,题意比较难懂,是求离query L层的总共人数

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <map>
    #include <vector>
    #include <queue>
    
    using namespace std;
    
    const int N = 1005;
    
    struct E
    {
    	int node;
    };
    vector<E> v[N];
    
    int mark[N];
    
    void add_edge(int a, int b)
    {
    	E tmp;
    	tmp.node = b;
    
    	v[a].push_back(tmp);
    }
    
    struct ANS
    {
    	int num;
    	int lev;
    };
    
    void BFS(int x, int ll)
    {
    	queue<ANS> q;
    	ANS tmp;
    	tmp.lev = 0;
    	tmp.num = x;
    	q.push(tmp);
    	mark[x] = 1;
    
    	int level = 0;
    	int ans = 0;
    	while (!q.empty())
    	{
    		ANS top = q.front();
    
    		int node = top.num;
    		int lev = top.lev;
    		if (lev >= ll) break;
    		q.pop();
    
    		for (int i = 0; i < v[node].size(); i++)
    		{
    			if (mark[v[node][i].node] == 0)
    			{
    				mark[v[node][i].node] = 1;
    
    				tmp.lev = lev + 1;
    				tmp.num = v[node][i].node;
    
    				//printf("%d %d
    ", tmp.num, tmp.lev);
    				ans++;
    				q.push(tmp);
    			}
    		}
    	}
    
    	printf("%d
    ", ans);
    }
    		
    
    int main()
    {
    	int n, ll;
    
    	while (scanf("%d%d", &n, &ll) != EOF)
    	{
    		for (int i = 1; i <= n; i++)
    		{
    			int k, a;
    			scanf("%d", &k);
    			while (k--)
    			{
    				scanf("%d", &a);
    				add_edge(a, i);
    			}
    		}
    		int query_num, query;
    		scanf("%d", &query_num);
    		while (query_num--)
    		{
    			scanf("%d", &query);
    			memset(mark, 0, sizeof(mark));
    			BFS(query, ll);
    		}
    	}
    	return 0;
    }
    
    
    
    
    
    
    
    
    
    	
    
    
    	
    

      

  • 相关阅读:
    在Linux CentOS 6.6上安装Python 2.7.9
    CentOS yum 安装LAMP PHP5.4版本
    yum 安装php环境
    如何在Eclipse配置PyDev插件
    vagrant使用小结
    虚拟机下安装CentOS6.5系统教程
    python
    library cahce pin
    利用分析函数删除重复数据
    组合索引避免索引扫描后在过滤
  • 原文地址:https://www.cnblogs.com/echobfy/p/3576803.html
Copyright © 2011-2022 走看看