首页 > 代码库 > Pet
Pet
点击打开链接
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\n", ans ); } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。