POJ 1655 Balancing Act(简单树型dp)
来源:互联网 发布:初中编程学哪个 编辑:程序博客网 时间:2024/06/05 19:50
题目链接:
POJ 1655 Balancing Act
题意:
给一个
求所有结点中平衡值的最小值。
数据范围:
分析:
比较简单的树型dp。
对每个节点记录以它为根的子树的结点数量,
时间复杂度:
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <climits>#include <cmath>#include <ctime>#include <cassert>#define IOS ios_base::sync_with_stdio(0); cin.tie(0);using namespace std;typedef long long ll;const int MAX_N = 20010;int T, n, total;int head[MAX_N], num[MAX_N], ans[MAX_N];struct Edge { int v, next;} edge[MAX_N * 2];void AddEdge(int u, int v){ edge[total].v = v; edge[total].next = head[u]; head[u] = total++;}void dfs(int u, int p){ for (int i = head[u]; i != -1; i = edge[i].next) { int v = edge[i].v; if (v == p) continue; dfs(v, u); num[u] += num[v]; ans[u] = max(ans[u], num[v]); } num[u]++; // 自身还有一个结点 if (u != 1) ans[u] = max(ans[u], n - num[u]); //printf("num[%d] = %d ans[%d] = %d\n", u, num[u], u, ans[u]);}void wyr(){ memset(ans, 0, sizeof(ans)); memset(num, 0, sizeof(num)); dfs(1, -1); int Min = INT_MAX, id = 0; for (int i = 1; i <= n; ++i) { if (ans[i] < Min) { Min = ans[i]; id = i; } } printf("%d %d\n", id, Min);}int main(){ scanf("%d", &T); while (T--) { memset(head, -1, sizeof(head)); total = 0; scanf("%d", &n); for (int i = 1; i < n; ++i) { int u, v; scanf("%d%d", &u, &v); AddEdge(u, v); AddEdge(v, u); } wyr(); } return 0;}
0 0
- POJ 1655 Balancing Act(简单树型dp)
- 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
- (简单) 树形dp POJ 1655 Balancing Act
- poj 1655 Balancing Act(树形dp)
- POJ 1655 Balancing Act(树型DP)
- POJ 1655Balancing Act(树形DP)
- poj 1655 Balancing Act(树形DP)
- poj 1655 Balancing Act(树形dp)
- POJ 1655 Balancing Act(求树的重心--树形DP)
- POJ 1655 Balancing Act (树形dp 树的重心)
- poj-1655-Balancing Act 树形dp/树的重心
- poj 1655 Balancing Act 【树形DP 求树的重心】
- poj 1655 Balancing Act 树状DP,求树的质心
- POJ 1655 Balancing Act 树型DP 树的重心 板题
- Java 集合框架源码分析(四)——LinkedHashMap
- HTML引用资源相对路径
- poj 3185 高斯消元 枚举变元
- jsp中el表达式无效的解决办法
- 数组的应用深入
- POJ 1655 Balancing Act(简单树型dp)
- POJ2728 Desert King 最优比例生成树
- 指针的简单应用
- android2.6.1——知晓当前活动
- 指针的深入
- 结构体初识
- Java JDBC 之 PreparedStatement
- C#中的异常捕获机制(try catch finally)
- H2 DataBase简单使用