博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ3107 Godfather (树形DP)
阅读量:5339 次
发布时间:2019-06-15

本文共 2251 字,大约阅读时间需要 7 分钟。

题意:求树的重心

题解:先跑一遍dfs 预处理出这种遍历方式每个节点的儿子(含自己)的数

   再跑一遍 每个点的值就是他所有儿子中取一个最大值 再和它父亲这个方向比较一下

   又被卡常了 vector一直tle 需要用前向星....

 

#include 
#include
#include
#include
#include
using namespace std;int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}struct node{ int no, to, nex;}E[100005];int n, rt;int du[50005];int head[50005];int son[50005];int dp[50005];int dfs1(int x, int fa){ son[x] = 1; int c = head[x]; for(int i = c; i; i = E[i].nex) { int c = E[i].to; if(c == fa) continue; son[x] += dfs1(c, x); } return son[x];}void dfs2(int x, int fa){ dp[x] = n - son[x]; int c = head[x]; for(int i = c; i; i = E[i].nex) { int c = E[i].to; if(c == fa) continue; dp[x] = max(dp[x], son[c]); dfs2(c, x); }}int main(){ while(~scanf("%d", &n)) { for(int i = 1; i <= n; i++) du[i] = son[i] = dp[i] = head[i] = 0; int cn = 0; for(int i = 1; i < n; i++) { int u, v; u = read(); v = read(); E[++cn].no = u; E[cn].to = v; E[cn].nex = head[u]; head[u] = cn; E[++cn].no = v; E[cn].to = u; E[cn].nex = head[v]; head[v] = cn; du[u]++; du[v]++; } for(int i = 1; i <= n; i++) if(du[i] == 1) { rt = i; break; } int o = dfs1(rt, -1); dfs2(rt, -1); int ans = n + 5; int cnt = 0; for(int i = 1; i <= n; i++) ans = min(ans, dp[i]); for(int i = 1; i <= n; i++) if(dp[i] == ans) cnt++; for(int i = 1; i <= n; i++) { if(dp[i] == ans) { if(cnt == 1) { printf("%d\n", i); break; } else printf("%d ", i); cnt--; } } } return 0;}
View Code

 

转载于:https://www.cnblogs.com/lwqq3/p/9010935.html

你可能感兴趣的文章
angular、jquery、vue 的区别与联系
查看>>
参数范围的选择
查看>>
使用 MarkDown & DocFX 升级 Rafy 帮助文档
查看>>
THUPC2019/CTS2019/APIO2019游记
查看>>
Nodejs Express模块server.address().address为::
查看>>
4.3.5 Sticks (POJ1011)
查看>>
POJ 2960 S-Nim 博弈论 sg函数
查看>>
Dijkstra模版
查看>>
一个简单的插件式后台任务管理程序
查看>>
GDB调试多进程程序
查看>>
组合数
查看>>
第二章作业心得
查看>>
CMD批处理延时启动的几个方法
查看>>
转:LoadRunner中web_custom_request 和 web_submit_data的差别
查看>>
HTC G7直刷MIUI开启A2SD+亲测教程
查看>>
shiro的rememberMe不生效
查看>>
const 不兼容的类型限定符问题
查看>>
OpenCV的配置
查看>>
spring Cache + Redis 开发数据字典以及自定义标签
查看>>
成功连上数据库顿感世界美好许多
查看>>