题目描述

 “我是番茄酱!”
“我是黄芥末酱!”
“合在一起就是——美式热狗上加的,那个!“
热狗树上的每个节点都涂有番茄酱或者黄芥末酱中的一种,这样热狗树就变得美味了~LiMn2O4构造了一颗热狗树,他想知道这棵树的美味程度。
一个热狗树的美味程度,定义为每个节点到其他和自己口味不一样的节点的最短距离之和的和,也就是任意两个口味不同的节点之间的路径长度和。请你求出这颗树的美味值,并且答案对998244353取模。

 

输入

第一行一个正整数N。
第二行有N个数,他们的值在[0,1]范围内取,其中1代表是涂了番茄酱,0代表是涂了黄芥末酱。
接下来N-1行,每一行有三个数a,b,w。代表节点a到b有边,路径的权值是w。输入数据保证是一棵树。
N≤100000,1≤a,b≤N,w<1 000 000 000

 

输出

输出答案对998244353取模后的结果。

样例输入

3
1 0 1
1 2 1
1 3 2

样例输出

8

提示

树(tree)是包含n(n>=0)个结点的有穷集,其中:
(1)每个元素称为结点(node);
(2)有一个特定的结点被称为根结点或树根(root)。
(3)除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合Ti(1<=i<=m)本身也是一棵树,被称作原树的子树(subtree)。

  很裸的一个树形dp,sb的一直在用点算,其实直接以边的角度来看,每条边的贡献值就是,2ll*(子节点子树为1的数目*(总0数目-子节点子树为0的数目)*边权+子节点子树为0的数目*(总1数目-子节点子树为1的数目)*边权)

  也就是看这条边两边为0和为1的情况。

 #include<cstdio>
typedef long long ll;
const int N=,mod=;
struct Side{
int v,ne;
ll w;
}S[N<<];
int sn,head[N],size[N][],a[N],num[];
ll ans;
void init(int n)
{
sn=;
ans=;
num[]=num[]=;
for(int i=;i<=n;i++){
head[i]=-;
size[i][]=size[i][]=;
}
}
void add(int u,int v,int w)
{
S[sn].v=v;
S[sn].w=1ll*w;
S[sn].ne=head[u];
head[u]=sn++;
}
void dfs(int u,int f)
{
size[u][]=(a[u]==);
size[u][]=(a[u]==);
for(int i=head[u],v;~i;i=S[i].ne){
v=S[i].v;
if(v!=f){
dfs(v,u);
size[u][]+=size[v][];
size[u][]+=size[v][];
ans=(ans+2ll*size[v][]*(num[]-size[v][])*S[i].w%mod)%mod;
ans=(ans+2ll*size[v][]*(num[]-size[v][])*S[i].w%mod)%mod;
}
}
}
int main()
{
int n,u,v,w;
while(~scanf("%d",&n)){
init(n);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
num[]+=(a[i]==);
num[]+=(a[i]==);
}
for(int i=;i<n;i++){
scanf("%d%d%d",&u,&v,&w);
add(u,v,w);
add(v,u,w);
}
dfs(,);
printf("%lld\n",ans);
}
return ;
}

看边啊

第四届西安邮电大学acm-icpc校赛 热狗树的更多相关文章

  1. 第四届西安邮电大学acm-icpc校赛 猜球球

    题目描述 六一到了,为了庆祝这个节日,好多商家都推出了很多好玩的小游戏.Tongtong看到了一个猜球球的游戏,有n种除了颜色之外完全相同的球,商家从中拿出来一个球球放到了箱子里,已知第i种颜色的球出 ...

  2. 第四届西安邮电大学acm-icpc校赛 流浪西邮之寻找火石碎片 多体积条件背包

    题目描述 众所周知,由于木星引力的影响,世界各地的推进发动机都需要进行重启.现在你接到紧急任务,要去收集火石碎片,重启西邮发动机.现在火石碎片已成为了稀缺资源,获得火石碎片需要钱或者需要一定的积分.火 ...

  3. 北方大学 ACM 多校训练赛 第七场 C Castle(LCA)

    [题意]给你N个点,N条不同的边,Q次询问,求出u,v之间的最短路. [分析]题意很简单,就是求最短路,但是Q次啊,暴力DIJ?当然不行,观察到这个题边的数目和点的数目是相同的,也就是说这个图是由一棵 ...

  4. 近几年ACM/ICPC区域赛铜牌题

    2013 changsha zoj 3726 3728 3736 3735 2013 chengdu hud 4786 4788 4790 2013 hangzhou hdu 4770 4771 47 ...

  5. 2016 ACM/ICPC 区域赛(北京) E 题 bfs

    https://vjudge.net/problem/UVALive-7672 题意    输入一个五位数n 问由12345变到n的操作最少次数 不可达输出-1 有三种操作 1.交换相邻的位置 次数不 ...

  6. ACM/ICPC 之 数据结构-线段树+区间离散化(POJ2528)

    这道题用线段树做更方便更新和查询,但是其数据范围很大,因此要将离散化和线段树结合起来,算是一道比较经典的线段树+离散化的例题. 线段树的离散化有很多方法,在这里,我先用一次结点离散化,间接将源左右端点 ...

  7. ACM/ICPC 之 数据结构-线段树思想(POJ2182,含O(n^2)插入式解法)

    这道题在一定程度上体现了线段树的一种用法,解决的问题是:对于总计n个元素的第i个元素,已知其在[1,i]上部分序列的排名,求第i个元素在所有n个元素中的排名. 当然这道题数据比较水,所以用O(n^2) ...

  8. 2014哈商大ICPC/ACM校赛解题报告

    被debug邀请去參加校赛,哎,被虐..我对不起工大.. 由于本人不搞ACM,算法处于HelloWorld水准.. 虽然题目除了鸟不拉屎星人之外都非常水,但我能做到这个程度,全然是超水平发挥了.. 数 ...

  9. 2015 ACM / ICPC 亚洲区域赛总结(长春站&北京站)

    队名:Unlimited Code Works(无尽编码)  队员:Wu.Wang.Zhou 先说一下队伍:Wu是大三学长:Wang高中noip省一:我最渣,去年来大学开始学的a+b,参加今年区域赛之 ...

随机推荐

  1. Antd组件库,利用Menu组件模拟一个简单Tree组件

    当前工作中,前端的主要技术栈用是vue. 那React怎么办呢?总不至于把他扔在墙角吧! 只能在一些很小的项目上,也只有自己一个前端的时候,悄悄的上React. 当然,React项目UI组件还是最喜欢 ...

  2. 怎样理解AJAX

    AJAX: Asynchronous JavaScript and XML, 翻译过来就是: 异步的JavaScript与XML 这已经成为了一个通用名词, 字面意义已经消失了, 因为现在使用Java ...

  3. Hash一致性算法底层原理

    大纲 Hash取余算法 判定哈希算法好坏的四个定义 一致性Hash算法的两大设计 Hash取余算法 hash(Object.key)%N,hash值随Object.key.N的变化而变化. 如果有节点 ...

  4. JS-实现横向手风琴

    横向手风琴-- 鼠标悬浮某一张图片,图片显示,其他图片影藏. <div class="content"> <ul> <li class="c ...

  5. ORCALE字符集AL32UTF8和ZHS16GBK的互相转换

    AL32UTF8转成ZHS16GBK cmd中输入“SQLPLUS”,回车,然后再在用户名下输入“SYS AS SYSDBA”,回车 密码后面输入“SYS”,回车.这里输入密码是隐式的,所以看不见,只 ...

  6. Nginx安装与配置【转】

    原文:linux之nginx 作者;海燕. 一.nginx Ngix是web服务器,跟apache一样,它可以做动态请求转发.web端负载均衡.反向代理等等: tomcat是应用服务器,当然如果非用逼 ...

  7. java之JVM学习--简单理解编译和运行的过程之概览

    java代码编译流程图: java字节码执行由JVM执行引擎完成 Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 Java源码编译机制 Jav ...

  8. C# PDF 填值 填充数据

    看效果图   /// <summary> /// 赛事结果PDF /// </summary> /// <param name="model"> ...

  9. C和指针课后问答题答案翻译

    第11章 动态内存分配 1.在你的系统中,你能够声明的静态数组最大长度能达到多少?使用动态内存分配,你最大能够获取的内存块有多大? 英文答案原文: This will vary from system ...

  10. yum安装mysql-server

    yum install mysql-server mysql vi /etc/my.cnf [client] default-character-set=utf8 service mysqld sta ...