首页 > 其他分享 >P9194 [USACO23OPEN] Triples of Cows P 题解

P9194 [USACO23OPEN] Triples of Cows P 题解

时间:2023-11-09 22:34:20浏览次数:41  
标签:连边 USACO23OPEN 黑点 题解 sum 白点 儿子 Cows

Description

给定一棵初始有 \(n\) 个点的树。

在第 \(i\) 天,这棵树的第 \(i\) 个点会被删除,所有与点 \(i\) 直接相连的点之间都会两两连上一条边。你需要在每次删点发生前,求出满足 \((a,b)\) 之间有边,\((b,c)\) 之间有边且 \(a\not=c\)的有序三元组 \((a,b,c)\) 对数。

\(n\leq 2\times 10^5\)。

Solution

考虑把每个原图中的点看成白点,边看成黑点,原图中有连边的两个点就向他们对应的黑点连边。

那么每次删点操作就相当于把一个白点的所有相邻黑点合并,并且删除这个黑点。

所以所有 \((a,b,c)\) 可以看成 \((a,x,b,y,c)\),其中 \(x\) 是 \(a,b\) 连边对应的黑点,\(y\) 是 \(b,c\) 连边对应的黑点。

容易发现把 \(n\) 作为根可以保证图始终是个树。

设 \(s_x\) 表示 \(x\) 的儿子数,\(t_x\) 表示 \(x\) 儿子的 \(s\) 之和,\(w_x\) 表示 \(x\) 儿子的 \(t\) 之和。然后考虑分类讨论。

首先如果 \(x=y\),答案就是 \(\sum_{x为黑点}{(s_x+1)s_x(s_x-1)}\)。

如果 \(x\neq y\) 但是 \(x,y\) 都是 \(b\) 的儿子,答案就是 \(\sum_{b为白点}{\left(t_b^2-\sum_{x\in son(b)}{s_x^2}\right)}\)。

最后就是 \(x\neq y\) 且 \(x,y\) 一个是 \(b\) 的儿子,一个是 \(b\) 的父亲。

答案就是 \(2\sum_{x是黑点}{s_x w_x}\)。

把所有的加起来就是:

\[\sum_{x是黑点}{s_x^3-s_x^2-s_x+2s_x w_x}+\sum_{y是白点}{t_y^2} \]

每次合并的时候用并查集维护即可。

时间复杂度:\(O(n\log n)\)。

Code

还没调出来。

标签:连边,USACO23OPEN,黑点,题解,sum,白点,儿子,Cows
From: https://www.cnblogs.com/Scarab/p/17823055.html

相关文章

  • [题解] CF938G Shortest Path Queries
    ShortestPathQueries给你一张无向连通图,支持三种操作:插入一条边\((u,v,w)\)。删除一条边。求\((u,v)\)之间的异或最短路。\(n,m,1<2^{30}\)。先考虑异或最短路怎么求,这部分和最大XOR和路径是一样的。就是把图上的环都扔到一个线性基里,每次查询就是线性基......
  • [题解] P5901 [IOI2009] Regions
    P5901[IOI2009]Regions给你一棵树,每个点有颜色\(h_i\)。多次询问,每次询问有多少对\((u,v)\)满足\(u\)是\(v\)的祖先且\(u\)的颜色是\(r_1\)且\(v\)的颜色是\(r_2\)。\(n,q\le2\times10^5,h_i\le2.5\times10^4\)。总颜色数一定,考虑对颜色的出现次......
  • [题解] CFgym103069G Prof. Pang's sequence
    G.Prof.Pang'ssequence给一个长度为\(n\)的序列\(a\),多次询问区间\([l,r]\)内有多少个子区间的颜色数是奇数。\(n,m\le10^5\)。先按照HH的项链的套路,对于每个数记一下\(lst_i\)表示\(a_i\)上一次出现的位置。然后扫描线,将所有子区间的答案转化成历史和。......
  • [CSP-J 2021] 小熊的果篮 题解
    题目链接既然只有两种东西,我们不妨分开考虑,这里也借鉴了很多二分图题目的切入点。假设苹果和桔子下标分别如下图所示:苹果:1367910桔子:2458那么第一次取,应该是这样取:1234689也就是先取开头比较小的,然后轮流取,注意一定保证递增,也就是对于苹果找出来的\(x\)......
  • [题解]CFgym103470E Paimon Segment Tree
    PaimonSegmentTree区间加,求一段时间内的区间平方和。\(n,m,q\le5\times10^4\)。对时间维差分一下,变成询问区间历史平方和。离线下来扫描线,扫描线维护时间维,数据结构维护序列维。考虑维护二元组\((a,s)\)表示当前位置值为\(a\),历史平方和为\(s\)。可以发现怎......
  • A2OJ Ladder 21 简要题解
    https://earthshakira.github.io/a2oj-clientside/server/Ladder21.html只记录Difficultylevel>=8的。有很多题是口胡的。写了的会标注提交记录。还有些很久以前写过的题就懒得搬提交记录了。71.CF444EDZYlovesplanting我们二分答案,然后可以这样转化:把权\(\ged\)的......
  • 题解:疯狂lcm
    %你赛打到一半来写个题解link:疯狂lcm题意,求:\[\sum_{i=1}^{n}lcm(i,n)\]不多说废话,直接开推:\[\begin{aligned}&=n\sum_{i=1}^{n}\frac{i}{gcd(i,n)}\\&=n\sum_{d\midn}\sum_{i=1}^{n}\frac{i}{d}[gcd(i,n)=d]\\&=n\sum_{d\midn}\sum_{i=1}^{n}......
  • KubeEdge部署 完美运行 附问题解决方法
    云端部署环境准备一、部署前工作(k8s、docker安装及配置、初始化集群、golang安装、keadm安装)配置网络参数cat>>/etc/hosts<<EOF#GitHubStart52.74.223.119github.com192.30.253.119gist.github.com54.169.195.247api.github.com185.199.111.153assets-cdn.gith......
  • linux/docker 版 Sql Server新建的数据库插入中文乱码问题解决方案
    SqlServer插入遇到乱码原因:在英文系统中,SqlServer默认排序规则为英文字典顺序解决方案一:容器版SqlServer,在创建容器时,可以加上环境变量-eMSSQL_COLLATION=Chinese_PRC_CI_AS-eTZ=Asia/Shanghai 把排序规则设为中文字典顺序并忽略大小写区分重音,时区设置为上海,不然......
  • CSP-S 2023 T1 题解
    CSP-S2023T1题解很简单,我们只需要暴力枚举五位密码,每次判断拨一个齿轮和两个齿轮能达到的状态数,如果等于\(n\),答案\(+1\)。时间复杂度\(O(10^5\times5n)\)。code#include<iostream>#include<algorithm>#include<cmath>#include<cstring>usingnamespacestd;......