树的平衡值
来源:互联网 发布:做淘宝美工好吗 编辑:程序博客网 时间:2024/05/17 08:35
POJ 1655
题目描述:
树的顶点~20,000. 保证是一棵树,每个顶点的平衡值如下:去掉该点后,剩下的树顶点的最大值.求出给出树平衡值最小的顶点,如果一样,输出序号较小的.
题解:
树形dp.其实平衡值就是儿子的个数和父亲那里个数的较小值.
重点:
树形dp,统计子树个数经常用.
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <cmath>#include <ctype.h>#include <limits.h>#include <cstdlib>#include <algorithm>#include <vector>#include <queue>#include <map>#include <stack>#include <set>#include <bitset>#define CLR(a) memset(a, 0, sizeof(a))#define REP(i, a, b) for(int i = a;i < b;i++)#define REP_D(i, a, b) for(int i = a;i <= b;i++)typedef long long ll;using namespace std;const int maxn = 2e4 +100;const int INF = INT_MAX - 1;int num[maxn], dp[maxn], n;int ans, ans_i;vector<int> G[maxn];void dfs(int u, int fa){ num[u] = 1; dp[u] = 0; REP(i, 0, G[u].size())//一边搞结果dp,一遍算num,num才是真正的树形dp数组. { int v = G[u][i]; if(v!=fa) { dfs(v, u); dp[u] = max(dp[u], num[v]); num[u] += num[v]; } } dp[u] = max(dp[u], n - num[u]); if(dp[u] < ans) { ans = dp[u]; ans_i = u; } else if(dp[u] == ans && u < ans_i) { ans_i = u; }}void solve(){ ans = INF; dfs(1, 0); printf("%d %d\n", ans_i, ans);}int main(){ //freopen("1Ain.txt", "r", stdin); //freopen("1Aout.txt", "w", stdout); int ncase; scanf("%d", &ncase); while(ncase--) { scanf("%d", &n); REP_D(i, 1, n) { G[i].clear(); } REP_D(i, 1, n - 1) { int a, b; scanf("%d%d", &a, &b); G[a].push_back(b);// if(a == 1)// {// printf("%d--%d\n",i, b);// } G[b].push_back(a);// if(b == 1)// {// printf("%d--%d\n", i,a);// } } solve(); } return 0;}
0 0
- 树的平衡值
- 平衡二叉树的
- 平衡树的练习
- 平衡二叉树的建立
- 平衡树的基本操作
- 平衡二叉树的创建
- AVL平衡树的旋转
- 平衡二叉树的使用
- 平衡二叉树的判断
- 平衡二叉树的原理
- AVL平衡树的实现
- 平衡二叉树的好处
- 平衡二叉树的调整
- 平衡二叉树的旋转
- AVL树的平衡过程
- 平衡二叉树的删除
- 平衡二叉树的简介
- 平衡二叉树的判断
- UIViewController的返回按钮从英文改为中文
- 服务器向ajax回送数据的3种格式:文本格式、xml、json
- 统计0到n中1的个数
- jQuery
- 2015百度之星资格赛 列变位法解密 1002
- 树的平衡值
- [线段树]HDU4893 Wow! Such Sequence!
- jQuery.extend函数详细用法!
- Java网络基础
- ajax引擎对象通过responseText属性 或者responseXML属性 接收服务器回送的数据
- Android项目(1)文件的命名规范
- 外部传参,关于ExternalInterface.addCallback的使用。
- 预加载2+网页加载条 可以直接复制代码运行,如果图片地址丢失的话可以自己替换掉
- 登录界面的实现