hdu 4705 dfs统计更新节点信息
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4705
#pragma comment(linker, "/STACK:16777216")
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std; const int maxn = ; long long dp[maxn];
vector<int> G[maxn];
long long num[maxn];
long long N;
long long ans; void dfs(int u,int fa){
for(int i=;i<G[u].size();i++){
int v = G[u][i];
if(v == fa) continue;
dfs(v,u);
num[u] += num[v];
}
long long numfa = N - num[u];
for(int i=;i<G[u].size();i++){
int v = G[u][i];
if(v == fa){
long long temp = num[u]-;
dp[u] += numfa * temp;
continue;
}
long long temp = N - num[v] - ;
dp[u] += num[v] * temp;
}
ans += dp[u];
} int main()
{
// freopen("E:\\acm\\input.txt","r",stdin);
while(cin>>N){
memset(dp,,sizeof(dp));
for(int i=;i<=N;i++) num[i] = ;
for(int i=;i<=N;i++) G[i].clear();
int a,b;
for(int i=;i<=N-;i++){
scanf("%d%d",&a,&b);
G[a].push_back(b);
G[b].push_back(a);
}
ans = ;
dfs(,-);
long long MAX;
MAX = N*(N-)*(N-); //N写成int,比赛时wa的太痛苦了,还是队友看出来了。以后要注意了。 cout<<(MAX-ans*)/<<endl;
}
return ;
}
hdu 4705 dfs统计更新节点信息的更多相关文章
- 更新neo4j节点信息
		
将多个属性的内容更新到节点上 def update_by_id(id,graph,**kwargs): """ 更新节点的属性 根据节点的ID来更新节点的属性,如果存在该 ...
 - Snacks HDU 5692 dfs序列+线段树
		
Snacks HDU 5692 dfs序列+线段树 题意 百度科技园内有n个零食机,零食机之间通过n−1条路相互连通.每个零食机都有一个值v,表示为小度熊提供零食的价值. 由于零食被频繁的消耗和补充, ...
 - partproble在RHEL 6下无法更新分区信息
		
在RHEL5.x版本下面,在添加磁盘分区等操作后,一直使用partproble命令使内核重新读取分区表信息,从而不用重新启动.但是最近在RHEL 6(Red Hat Enterprise Linux ...
 - HDU 5877     dfs+ 线段树(或+树状树组)
		
1.HDU 5877 Weak Pair 2.总结:有多种做法,这里写了dfs+线段树(或+树状树组),还可用主席树或平衡树,但还不会这两个 3.思路:利用dfs遍历子节点,同时对于每个子节点au, ...
 - 2nd  词频统计更新
		
词频统计更新 实现功能:从控制台输入文件路径,并统计单词总数及不重复的单词数,并输出所有单词词频,同时排序. 头文件 #include <stdio.h> #include <std ...
 - python解析git log后生成页面显示git更新日志信息
		
使用git log可以查到git上项目的更新日志. 如下两个git项目,我想把git的日志信息解析成一个便于在浏览器上查看的页面. https://github.com/gityf/lua https ...
 - struts2是如何加载相关的package元素节点信息的
		
这不是一篇纯技术文章,而是一篇分享我个人在前后端分离路上收获的点点滴滴的文章,以此来为准备尝试前后端分离或者想了解前后端分离的童鞋做一个大体的讲解. 上一家公司是家小公司,做了一年的全栈开发,对前端的 ...
 - SharePoint 2013 数据库中手动更新用户信息
		
在SharePoint的使用过程中,尤其是Windows认证的情况下,而且没有配置用户配置文件服务,经常会出现如果更新AD中的用户信息(包括名字.显示名.邮件等),SharePoint这边站点并不会更 ...
 - -_-#【减少 DOM 访问】“离线”更新节点,再将它们添加到树中
		
Minimize DOM Access javascript 之 DOM 优化 <!DOCTYPE html> <html> <head> <meta cha ...
 
随机推荐
- Activity---Fragment---listView的实现
			
我们要做的是在Activity中加入一个ViewPager,利用ViewPager的适配器(继承于FragmentPagerAdapter)将Fragment加到其中,而我们在又在Fragment中又 ...
 - selenium+eclipse+python环境
			
1.下载并安装jdk,配置环境变量: 2.下载并安装python,配置path系统环境变量:D:\Program Files\python34: 3.安装selenium,在安装好的python路径D ...
 - Android 4.0及以上版本接收开机广播BOOT_COMPLETED、开机自启动服务
			
1.BootCompletedReceiver.Java文件 public class BootCompletedReceiver extends BroadcastReceiver { @Overr ...
 - listview的动态加载数据问题
			
1:调用adapter.notifyDataSetChanged()却不起作用 原因可能有一下几点 1.数据源没有更新,调用notifyDataSetChanged无效. 2.数据源更新了,但是它指向 ...
 - Android App优化建议(转载)
			
假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用设计精良.创意无限也没用. 耗电或者内存占用等 ...
 - C#线程池ThreadPool.QueueUserWorkItem接收线程执行的方法返回值
			
最近在项目中需要用到多线程,考虑了一番,选择了ThreadPool,我的需求是要拿到线程执行方法的返回值, 但是ThreadPool.QueueUserWorkItem的回调方法默认是没有返回值的,搜 ...
 - 在eclipse下面搭建Clojure开发运行环境
			
打开eclipse,点击菜单栏“help->Install New Software...", 然后,点击”add“, 在Location处输入 http://ccw.cgrand.n ...
 - 一个初学者对CLSA.NET框架的使用心得
			
什么是CSLA.NET框架? 今天在一个群里,有人问我什么是CSLA.NET,CSLA是Component-based, Scalable, Logical Architecture的简写,CSLA ...
 - ScheduleThreadPoolExecutor源码分析(二)
			
DelayedWorkQueue: DelayedWorkQueue实现了BlockingQueue接口,因此其可以作为线程池的任务队列.BlockingQueue的主要属性有以下几个: privat ...
 - opencv 常用函数介绍
			
××××××××××××××××××××××××××××××××××××××× CvScalar imgmean,imgstd; double imgmax,imgmin; cvAvgSdv(img, ...