poj 1655 树形DP
来源:互联网 发布:python 技术指标 编辑:程序博客网 时间:2024/04/30 14:19
AC代码如下:
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;#define MAX 0x3f3f3f3fstruct Edge{ int to, next;};int maxsonsize[22000], size[22000];int head[22000], tot;Edge edge[44000];int N;bool mark[22000];int ans[22000];int add_edge( int a, int b ){ edge[tot].to = b; edge[tot].next = head[a]; head[a] = tot++; edge[tot].to = a; edge[tot].next = head[b]; head[b] = tot++; return 0;}int DFS( int pos ){ mark[pos] = true; maxsonsize[pos] = 0; size[pos] = 1; for( int i = head[pos]; i != -1; i = edge[i].next ){ int to = edge[i].to; if( !mark[to] ){ DFS( to ); maxsonsize[pos] = max( maxsonsize[pos], size[to] ); size[pos] += size[to]; } } return 0;}int main(){ int T; cin >> T; while( T-- ){ cin >> N; tot = 0; memset( head, -1, sizeof( head ) ); for( int i = 1; i < N; i++ ){ int temp1, temp2; cin >> temp1 >> temp2; add_edge( temp1, temp2 ); } memset( mark, false, sizeof( mark ) ); DFS( 1 ); int anspos = 0; ans[0] = MAX; for( int i = 1; i <= N; i++ ){ ans[i] = max( maxsonsize[i], N - size[i] ); if( ans[i] < ans[anspos] ){ anspos = i; } } cout << anspos << " " << ans[anspos] << endl; } return 0;}
0 0
- poj 1655 树形DP
- poj 1655 树形dp
- poj 1655(树形dp)
- POJ-1655-树形dp
- poj 1655 简单树形dp
- POJ 1655 简单树形dp
- poj 1655树形dp && poj 3107 &&poj 2378 && poj 3140
- POJ 1655 Balancing Act 树形dp
- POJ--1655--Balancing Act--简单树形DP
- POJ 1655 - Balancing Act 树形DP
- poj 1655 Balancing Act(树形dp)
- 简单树形dp-poj-1655-Balancing Act
- poj 1655 Balancing Act(树形DP)
- (简单) 树形dp POJ 1655 Balancing Act
- Balancing Act - POJ 1655 树形dp
- poj 1655(树形DP 求解重心)
- poj 1655 Balancing Act (树形dp)
- POJ 1655 - Balancing Act(树形DP)
- MyEclipse去掉debug模式
- Unity学习(二):一些游戏开发中的术语(未完待续)
- [博弈]HDU 2509 Be the Winner
- C++调用gSoap编写的WEBSERVICE与C#.NET间接口自定义结构体不能重复使用
- 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式
- poj 1655 树形DP
- CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器?
- 观《那人那山那狗》有感
- JSON 解析相关 知识
- 数字图像处理—频域变换简单说明
- Dalvik字节码类型描述符
- 栈和列表的区别
- 给老板汇报技术规划的一些要点
- 源代码编译成托管代码托管代码合并成程序集