hdu4705 Y 树形DP

时间:2022-09-12 11:43:52

hdu4705 Y 树形DP

给出一颗数,求没有一条路径穿过的节点三元集合个数。

这样的三元集合呈现Y字形,求出反面情况,三点为子节点和两个祖先节点,或一个祖先节点与它子树中非父子关系的节点。可由树形DP求得。

 #pragma comment(linker, "/STACK:16777216")
#include<stdio.h>
#include<string.h>
typedef long long ll;
const int maxm=1e5+;
int d[maxm],son[maxm],fa[maxm];
ll dp[maxm],Dp[maxm],sum,Sum;
int head[maxm],point[maxm<<],nxt[maxm<<],size;
int n; inline void add(int a,int b){
point[size]=b;
nxt[size]=head[a];
head[a]=size++;
point[size]=a;
nxt[size]=head[b];
head[b]=size++;
} int dfs1(int r){
for(int i=head[r];~i;i=nxt[i]){
int j=point[i];
if(!d[j]){
d[j]=d[r]+;
fa[j]=r;
son[r]+=dfs1(j);
}
}
return son[r]+;
} ll dfs2(int r){
for(int i=head[r];~i;i=nxt[i]){
int j=point[i];
if(d[j]==d[r]+){
dp[r]+=son[j]+dfs2(j);
}
}
sum+=dp[r];
return dp[r];
} void dfs3(int r){
Dp[r]=-son[r]-+Dp[fa[r]]+dp[fa[r]]-dp[r]-son[r]+n-d[fa[r]];
Sum+=Dp[r];
for(int i=head[r];~i;i=nxt[i]){
int j=point[i];
if(d[j]==d[r]+){
dfs3(j);
}
}
} inline int read(){
int x=;
char c=getchar();
while(c>''||c<'')c=getchar();
while(c>=''&&c<=''){
x=x*+c-'';
c=getchar();
}
return x;
} int main(){
while(scanf("%d",&n)!=EOF){
memset(son,,sizeof(son));
memset(head,-,sizeof(head));
size=;
memset(d,,sizeof(d));
memset(dp,,sizeof(dp));
memset(Dp,,sizeof(Dp));
sum=Sum=;
int i;
for(i=;i<=n-;i++){
int a,b;
scanf("%d%d",&a,&b);
// int a=read();
// int b=read();
add(a,b);
}
d[]=;
fa[]=;
dfs1();
son[]=son[]+;
dfs2();
for(i=head[];~i;i=nxt[i]){
dfs3(point[i]);
}
ll ans=((ll)n*(n-)*(n-)//)-sum-Sum/;
printf("%lld\n",ans);
}
return ;}

hdu4705 Y 树形DP的更多相关文章

  1. HDU-4705 Y 树形DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4705 题意:给一颗树,从树上任意选择3个点{A,B,C},要求他们不在一条链上,求总共的数目. 容易想 ...

  2. HDOJ 4705 Y 树形DP

    DP:求出3点构成链的方案数 .然后总方案数减去它 Y Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K ...

  3. hdu4705(树形dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4705 题意: 有一颗树, 选出3个点. 不在同一条路径上的集合数. 分析:这题主要能逆向思考下,用总的 ...

  4. hdu4705 Y 简单树形DP 2013多校训练第十场 J题

    题意:求一棵树中不在一条链中的三个点的对数. 转化一下,用总对数减去在一条链上的三点对数即可. 考虑经过根节点,然后可能是不同的子树中各选一个:或者是子树中选一个,然后当前节点为根的子树以外的节点选一 ...

  5. HDU 4705 Y (2013多校10&comma;1010题,简单树形DP)

    Y Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submiss ...

  6. &lbrack;题解&rsqb;(树形dp&sol;记忆化搜索)luogu&lowbar;P1040&lowbar;加分二叉树

    树形dp/记忆化搜索 首先可以看出树形dp,因为第一个问题并不需要知道子树的样子, 然而第二个输出前序遍历,必须知道每个子树的根节点,需要在树形dp过程中记录,递归输出 那么如何求最大加分树——根据中 ...

  7. poj3417 LCA &plus; 树形dp

    Network Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4478   Accepted: 1292 Descripti ...

  8. COGS 2532&period; &lbrack;HZOI 2016&rsqb;树之美 树形dp

    可以发现这道题的数据范围有些奇怪,为毛n辣么大,而k只有10 我们从树形dp的角度来考虑这个问题. 如果我们设f[x][k]表示与x距离为k的点的数量,那么我们可以O(1)回答一个询问 可是这样的话d ...

  9. 【BZOJ-4726】Sabota? 树形DP

    4726: [POI2017]Sabota? Time Limit: 20 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 128  Solved ...

随机推荐

  1. linux文件及文件夹权限

    以前上学的时候简单了解了下linux,现在对它的认识也只停留在一些小白命令上.以为我只要不是做服务器端开发的应该不会去碰吧,工作了才知道做开发的多少还是要熟悉一些linux的,至少你的项目会部署在li ...

  2. 利用CSS、JavaScript及Ajax实现图片预加载的三大方法

    预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...

  3. Js 和 PHP 中保留小数点后X位数的方法 toFixed、round、number&lowbar;format、sprintf

    在 Javacript 中保留小数点后两位数的方法为 toFixed(2),其中的2为保留两位,写多少就保留多少了,满5进1. Javacript例子: var num = 24.54789523; ...

  4. NET Core 的 Views

    NET Core 十种方式扩展你的 Views 原文地址:http://asp.net-hacker.rocks/2016/02/18/extending-razor-views.html作者:Jür ...

  5. Html 解决数字和字母不换行

    在html页面中,如果是数字或者字母显示的话,默认是不换行的.一般显示成这种: 解决方法确实也很简单,设置td或者div为: style="word-break:break-all;&quo ...

  6. robot总结

    1 搭建环境地址 http://www.cnblogs.com/yufeihlf/p/5945102.html 2 页面描述 https://www.cnblogs.com/yufeihlf/p/59 ...

  7. spring配置JNDI(Java Naming and Directory Interface&comma;Java命名和目录接口)数据源

    1.在tomcat下的server.xml的 <GlobalNamingResources> </GlobalNamingResources>添加下面代码 <Resour ...

  8. keras 入门整理 如何shuffle,如何使用fit&lowbar;generator 整理合集

    keras入门参考网址: 中文文档教你快速建立model keras不同的模块-基本结构的简介-类似xmind整理 Keras的基本使用(1)--创建,编译,训练模型 Keras学习笔记(完结) ke ...

  9. CodeForces 937C&Tab;Save Energy&excl; 水题

    题意: 一个炉子烤鸡,炉子打开的时候一共$T$分钟可以烤完,关闭的时候一共$2T$分钟可以烤完,炉子每$K$分钟自动关闭,厨师每$D$分钟回来检查,打开炉子 问多长时间烤完.. 题解: 用整数写比较稳 ...

  10. 1&period; RNN神经网络模型原理

    1. RNN神经网络模型原理 2. RNN神经网络模型的不同结构 3. RNN神经网络-LSTM模型结构 1. 前言 循环神经网络(recurrent neural network)源自于1982年由 ...