hdu4705Y
这题可以算树形DP吧 树上的递推
对于树上的某个节点 反着算比较好做 就是算有多少有simple路径的
固定某个节点u 另两个节点 有两种取法
1.从不同子树里各选一个
2.从所有子树里选一个 再从以u为跟的子树 外面选一个
求总和
#pragma comment(linker, "/STACK:16777216")
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define N 100010
#define LL __int64
struct node
{
int u,v,next;
}ed[N<<];
int head[N],t;
LL sum[N],ans,n;
void init()
{
t = ;
memset(head,-,sizeof(head));
}
void add(int u,int v)
{
ed[t].u = u;
ed[t].v = v;
ed[t].next = head[u];
head[u] = t++;
}
LL dfs(int pre,int u)
{
int i;
LL s=,ss;
sum[u] = ;
for(i = head[u]; i!=- ; i = ed[i].next)
{
int v = ed[i].v;
if(v==pre) continue;
ss = dfs(u,v);
ans+=s*ss;
s+=ss;
sum[u]+=ss;
}
ans+=s*(n-sum[u]);
return sum[u];
}
int main()
{
int i,u,v;
while(scanf("%I64d",&n)!=EOF)
{
init();ans=;
memset(sum,,sizeof(sum));
for(i = ; i < n ; i++)
{
scanf("%d%d",&u,&v);
add(u,v);
add(v,u);
}
dfs(-,);
LL oo = (n-)*n/*(n-)/;
printf("%I64d\n",oo-ans);
}
return ;
}
hdu4705Y的更多相关文章
随机推荐
- Objective-C 【类对象及SEL存储方式】
------------------------------------------- 类的本质--类对象 一段代码: #import <Foundation/Foundation.h> ...
- Ajax的概述与实现过程
一.ajax概述 1.Ajax是Asynchronous([ə'sɪŋkrənəs) JavaScript XML的简写,不是一门新技术,而是对现有技术的综合利用.这一技术能够向服务器请求额外数据而无 ...
- Angle
1 What is Angle. The goal of ANGLE is to allow Windows users to seamlessly run WebGL and other OpenG ...
- mysql 数据库还原出错ERROR:Unknown command '\' mysql中断
其实造成这个问题的原因还是由于编码的问题,网站数据库设置的是gbk 的,mysql默认是gbk:但是在导出数据的时候导出了utf8的sql文件,不管我如何重新导入,在连接数据库后使用set names ...
- <a>作Form表单提</a>
1. Form表单<%using (Html.BeginForm("AddRoles", "RoleManage", FormMethod.Post, n ...
- 使用memcache(thinkphp框架学习)
$memcache = new Memcache; $memcache->connect("localhost",11211); $memcache->set('sxt ...
- UML用户指南--UML图简介
本节和大家一起学习一下UML图,这里主要介绍UML结构图和UML行为图两部分,下面让我们一起看一下UML图的详细介绍吧. UML图 这里再次提到对软件体系结构进行可视化.详述.构造和文档化,有5种最重 ...
- CATextLayer
CATextLayer *layer = [[CATextLayer alloc] init]; layer.frame = CGRectMake(0, 300, 100, 100); 字体模糊 l ...
- SpringMVC最基础配置
SpringMVC和Struts2一样,是前后台的一个粘合剂,struts2用得比较熟悉了,现在来配置一下SpringMVC,看看其最基础配置和基本使用.SpriingMVC不是太难,学习成本不高,现 ...
- 用JAVA实现数字水印(可见)
数字水印有可见不可见之分,可见的比如课件上印有学校校徽,微博发图片会水印上上传者的信息及微博logo等. 用java实现可见的数字水印,草人主要是用到了java.awt包中的AlphaComposit ...