JZOJ 5326. LCA 的统计 (Standard IO)
5326. LCA 的统计 (Standard IO)
Time Limits: 1000 ms Memory Limits: 131072 KB
Description
Input
Output
Sample Input
2 2
1 1
Sample Output
17
Data Constraint
Hint
题解
树形dp
枚举now=lca(i,j),快速算出符合条件的i的权值和与j的权值和的乘积,更新答案。
有三种情况
1. i和j在不同的子树中,设lca(u,v)的所有子节点权值和为sum1,sum2,sum3...sumk,则这部分答案就是∑i∑i≠jsumi∗sumj。设A=∑isumi,那么这部分答案就是∑isumi∗(A−sumi)
2. i和j有一个是now,那么这部分答案就是2∗A∗wnow
3. i和j都是now,那么这部分答案就是wnow 2
把上面三种情况求和,由于lca(i,j)都是now,所以再乘个wnow就是答案了。
代码
#include<cstdio>
#define mo 1000000007
#define ll long long
#define N 1000010
long fa[N],lc[N],rb[N],next[N],sum[N],ch[N],w[N];
void build(long now)
{
if(!now)return;
build(fa[now]);
ch[fa[now]]+=ch[now];
}
long solve(long now)
{ long ans=0,s1=0,s2=0,i;
for(i=lc[now];i;i=rb[i]){
ans=(ans+solve(i))%mo;
s1=(s1+sum[i])%mo;
}
sum[now]=(sum[now]+s1)%mo;
for(i=lc[now];i;i=rb[i]){
ans=(ans+(ll)(s1-sum[i])*sum[i]%mo*w[now]%mo)%mo;
}
ans=((ll)ans+(ll)w[now]*w[now]%mo*w[now]%mo+2ll*s1%mo*w[now]%mo*w[now]%mo)%mo;
return ans;
}
int main()
{ long n,i;
scanf("%ld%ld",&n,&w[1]);
sum[1]=w[1];
for(i=2;i<=n;i++){
scanf("%ld%ld",&fa[i],&w[i]);
sum[i]=w[i];
ch[fa[i]]++;
if(!lc[fa[i]])
lc[fa[i]]=i;
else
rb[next[fa[i]]]=i;
next[fa[i]]=i;
}
for(i=1;i<=n;i++)
if(!ch[i])
build(i);
printf("%ld\n",solve(1));
return 0;
}
JZOJ 5326. LCA 的统计 (Standard IO)的更多相关文章
- JZOJ 2137. 【GDKOI2004】城市统计 (Standard IO)
2137. [GDKOI2004]城市统计 (Standard IO) Time Limits: 1000 ms Memory Limits: 128000 KB Detailed Limits ...
- JZOJ 5258. 友好数对 (Standard IO)
5258. 友好数对 (Standard IO) Time Limits: 1000 ms Memory Limits: 524288 KB Detailed Limits Description I ...
- JZOJ 1775. 合并果子2 (Standard IO)
1775. 合并果子2 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 在一个果园里,多多已经将所有的果子 ...
- JZOJ 5286. 【NOIP2017提高A组模拟8.16】花花的森林 (Standard IO)
5286. [NOIP2017提高A组模拟8.16]花花的森林 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Descript ...
- JZOJ 5305. 【NOIP2017提高A组模拟8.18】C (Standard IO)
5305. [NOIP2017提高A组模拟8.18]C (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description ...
- JZOJ 5257. 小X的佛光 (Standard IO)
5257. 小X的佛光 (Standard IO) Time Limits: 2000 ms Memory Limits: 524288 KB Description Input Output Sam ...
- JZOJ 5307. 【NOIP2017提高A组模拟8.18】偷窃 (Standard IO)
5307. [NOIP2017提高A组模拟8.18]偷窃 (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Description ...
- JZOJ 1349. 最大公约数 (Standard IO)
1349. 最大公约数 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 小菜的妹妹小诗就要读小学了!正所谓 ...
- JZOJ 1736. 扑克游戏 (Standard IO)
1736. 扑克游戏 (Standard IO) Time Limits: 1000 ms Memory Limits: 128000 KB Description 有一棵无穷大的满二叉树,根为sta ...
随机推荐
- 吴裕雄--天生自然python学习笔记:python 用firebase实现英文电子词典
Firebase 版电子词典 学英语是许多 人一辈子的麻烦 . 所以本例中,我们开发一个英汉词典,用户执 行程序后,单击“翻译”按钮即可显示该单词的中文翻译 . 英汉词典标准版 因为这个案例的数据必须 ...
- Codeforces Round#615 Div.3 解题报告
前置扯淡 真是神了,我半个小时切前三题(虽然还是很菜) 然后就开始看\(D\),不会: 接着看\(E\),\(dp\)看了半天,交了三次还不行 然后看\(F\):一眼\(LCA\)瞎搞,然后\(15m ...
- 让mybatis不再难懂(二)
上一篇文章写了mybatis的基本原理和配置文件的基本使用,这一篇写mybatis的使用,主要包括与sping集成.动态sql.还有mapper的xml文件一下复杂配置等.值得注意的是,导图17和18 ...
- 【flask】RestFul的基本鉴权
编写API的基本鉴权 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : shenqiang from flask import Fla ...
- 未来科技城 x 奇点云打造「企业数据大脑」,助力1.3万家企业服务
“当前,政府数字化和数字政府建设已成为一种趋势.一种必然,并且有了一条水到渠成式的实现路径.” 上升为国家战略的数字中国建设加速了”智慧政务“的生动实践,杭州未来科技城的「企业数据大脑」就是一个典型. ...
- Leaflet,OpenLayers3加载ArcGIS切片(png格式,Exploded松散型)
需求 做了一个简单的WebGIS应用,不想因为加载切片就安装一台GIS服务器.于是想直接访问图片的方式来加载地图. 需解决的问题 leafletjs目前是不能够直接加载ArcGIS服务切片的,但可以借 ...
- css3 - transform, transition 与 translate
零.序言 css 3 的新特性,很多都停留在听说而非实际使用.transform, transition, translate 这三长得实在太像,刚开始的时候总是迷迷糊糊,分不清它们的功能.而最近新接 ...
- python3之urllib代理池
1.常见状态吗 301:重定向到新的URL,永久性302:重定向到临时URL,非永久性304:请求的资源未更新400:非法请求401:请求未经授权403:禁止访问404:没找到对应页面500:服务器内 ...
- Mysql的分页查询语句的性能分析
MySql分页sql语句,如果和MSSQL的TOP语法相比,那么MySQL的LIMIT语法要显得优雅了许多.使用它来分页是再自然不过的事情了. 1.1最基本的分页方式: 在中小数据量的情况下,这样的S ...
- mac命令日常总结
查看某个端口被占用 lsof -i tcp:8080 kill进程: 找到进程的PID,使用kill命令:kill -9 716(PID) date 显示系统日期 mkdir xx 创建xx目录 rm ...