poj 1655
来源:互联网 发布:知源药业有限公司 编辑:程序博客网 时间:2024/06/08 08:33
和刚才那个一样的题.. 改一下就过了
#include <iostream>
#include <stdio.h>
#include <vector>
#include <cstring>
using namespace std;
const int MAXN = 50005;
int node [MAXN];
int ans[MAXN];
int head[MAXN];
int sum, n;
int edge[MAXN*2];
int next[MAXN*2];
int vis[MAXN];
void addedge ( int a , int b )
{
int temp = head[a];
head[a] = sum;
edge[sum] = b;
next[sum] = temp;
sum ++;
temp = head[b];
head[b] = sum;
edge[sum] = a;
next[sum] = temp;
sum ++;
}
int dfs ( int u )
{
int num = 1;
vis[u] = 1;
for ( int i = head[u] ; i != -1; i = next[i] )
{
int v = edge[i];
//cout << "***** " << v << endl;
if ( !vis[v] )
{
num += dfs( v );
}
}
return node[u] = num;
}
void find_ans ( int u )
{
ans[u] = n - node[u];
vis[u] = 1;
for ( int i = head[u] ; i != -1 ; i = next[i] )
{
int v = edge[i];
if ( !vis[v] )
{
ans[u] = max ( node[v] , ans[u] );
find_ans ( v );
}
}
}
int main()
{
int T;
scanf("%d" ,&T);
while ( T-- )
{
scanf("%d" , &n ) ;
sum =0;
memset ( ans , 0 , (n+1)*sizeof ( int ));
memset ( node , 0 , (n+1)*sizeof ( int ));
memset ( vis , 0 , (n+1)*sizeof ( int ));
memset ( head , -1 , (n+1)*sizeof ( int ));
for ( int i = 0 ; i < n-1; i ++ )
{
int a , b;
scanf("%d%d", &a , &b );
addedge( a , b );
}
//cout << "here" << endl;
dfs ( 1 );
//cout << "here" << endl;
memset ( vis , 0 , (n+1)*sizeof ( int ));
find_ans ( 1 );
//cout << "here" << endl;
int w = 99999999;
for ( int i = 1 ; i <= n ; i ++ )
{
if ( w > ans[i] )
w = ans[i];
}
int flag = 1;
for ( int i = 1; i <= n ; i ++ )
if ( w == ans[i] && flag )
{
printf("%d %d", i,w );
break;
}
printf("\n");
}
return 0;
}
- poj 1655
- poj 1655
- POJ 1655
- POJ 1655
- POJ 1655
- poj 1655树形dp && poj 3107 &&poj 2378 && poj 3140
- POJ 1655 Balancing Art
- poj 1655 Balancing Act
- poj 1655 Balancing Act
- poj 1655 树型DP
- poj 1655 Balancing Act
- poj 1655 树状dp
- poj 1655 树形DP
- POJ 1655 Balancing Act
- POJ-1655(DFS)
- poj 1655 Balancing Act
- poj 1655 Balancing Act
- POJ 1655 Balancing Act
- xml的命名空间与css样式实现
- 好懊恼,一个小小的问题。总结
- Response.Redirect into a new window (with Extension Methods)
- 讲讲volatile的作用
- pku acm 1077
- poj 1655
- xml基础
- Android通知管理(NotificationManager)的使用,包括震动,led闪屏
- 谷歌Android手机应用开发环境的搭建
- mplayer的一些操作
- xml介绍
- 软件系统的4大技术本质
- 空洞与cp
- Android键盘事件的响应