zoukankan      html  css  js  c++  java
  • Pet

    版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/liujie619406439/article/details/37725227

    点击打开链接

    bfs,须要自己构图

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<queue>
    #include<vector>
    
    using namespace std;
    
    const int maxn = 100005;
    int dep[ maxn ];
    int vis[ maxn ];
    int pre[ maxn ];
    vector< int >mapp[ maxn ];
    
    void Bfs( int s ){
    	memset( dep, -1, sizeof( dep ) );
    	dep[ 0 ] = 0;
    	queue< int > q;
    	q.push( s );
    	while( !q.empty() ){
    		int u = q.front();
    		q.pop();
    		int sz = mapp[ u ].size();
    		for( int i = 0; i < sz; ++i ){
    			int v = mapp[ u ][ i ];
    			if( dep[ v ] != -1 )
    				continue;
    			
    			dep[ v ] = dep[ u ] + 1
    			q.push( v );
    		}
    	}
    }
    
    int main(){
    	int Case, n, d, u, v;
    	scanf( "%d", &Case );
    	while( Case-- ){
    		scanf( "%d%d", &n, &d );
    		for( int i = 0; i < n; ++i )
    			mapp[ i ].clear();
    		for( int i = 1; i < n; ++i ){
    			scanf( "%d%d", &u, &v );
    			mapp[ u ].push_back( v );
    			mapp[ v ].push_back( u );
    		}
    		Bfs( 0 );
    		int ans = 0;
    		for( int i = 0; i < n; ++i ){
    			if( dep[ i ] > d ){
    				ans++;
    			}
    		}
    		printf( "%d
    ", ans );
    	}
    	return 0;
    }


查看全文
  • 相关阅读:
    mysql复制那点事
    全排列问题
    56. Merge Interval
    2. Add Two Numbers
    20. Valid Parentheses
    121. Best Time to Buy and Sell Stock
    120. Triangle
    96. Unique Binary Search Trees
    91. Decode Ways
    72. Edit Distance
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10874527.html
  • Copyright © 2011-2022 走看看