首页 > 其他分享 >CF809E 题解

CF809E 题解

时间:2023-08-16 16:44:59浏览次数:36  
标签:frac gcd 题解 sum varphi text CF809E dis

一棵树,点权 \(a_i(a_i\le n)\),无边权,求

\[\sum_{i\ne j}\varphi(a_ia_j)\text{dis}(i,j) \]


首先,你没有任何手段求 \(10^{10}\) 级别的一堆离散的 \(\varphi\)。于是

\[\varphi(xy)=\frac{\varphi(x)\varphi(y)\gcd(x,y)}{\varphi(\gcd(x,y))} \]

然后一通莫反,枚举 \(\gcd\)

\[\sum_{d=1}^n \sum_{x=1}^n \sum_{y=1}^n [\gcd(x,y)=d]\frac{\varphi(x)\varphi(y)d}{\varphi(d)}\sum_{a_i=x,a_j=y}\text{dis}(i,j) \]

\[\sum_{T=1}^n\left(\sum_{d|T}\mu\left(\frac Td\right)\frac d{\varphi(d)}\right)\left(\sum_{x=1}^{n/T} \sum_{y=1}^{n/T} \varphi(xT)\varphi(yT) \sum_{a_i=x_T,a_j=y_T}\text{dis}(i,j)\right) \]

前者暴力求,后者就是

\[\sum_{T=1}^n \sum_{i\ne j}[T|a_i,T|a_j] \varphi(a_i)\varphi(a_j)\text{dis}(i,j) \]

可以点分。或者对于每个 \(T\) 把 \(a\) 为 \(T\) 的倍数的点暴力揪出来建虚树,然后

\[\sum_{i=1}^k \varphi(a_i) \sum_{j=1,j\ne i}^k \varphi(a_j)\text{dis}(i,j) \]

可以换根dp。保证 \(a\) 为排列的话总复杂度 \(O(n\ln n)\)。否则可以卡成 \(\Theta(n\max_{x=1}^n \sigma(x))\)。

标签:frac,gcd,题解,sum,varphi,text,CF809E,dis
From: https://www.cnblogs.com/vanspace/p/cf809e.html

相关文章

  • CF1648E 题解
    就是\(m\)组询问补图的最小生成树上的树链最大值。有两种基本思路求这棵树。第一种,Kruskal,基于找到最小的边使两端点不连通。考虑补图中\((x,y)\)的边权,它是原图最小生成树上的树链最大值。从小到大枚举补图的边,相当于从小到大枚举原图最小生成树的边\((u,v,w)\),然后:令原图......
  • AT_agc064_a题解
    题面题目大意给定一个正整数\(N\),要求构造一个序列。对于每一个在\(1\)到\(N\)之间的整数\(i\),序列中包含了\(i\)个,并且将该序列首尾相接拼成环后,相邻两项之差大于等于\(1\)小于等于\(2\)。思路突破口是关于相邻两项之差的约束条件。(我一开始竟然只看见了“小于等......
  • CF1854D 题解
    CF1854DMichaelandHotel题解Links洛谷CodeforcesDescription这是一个交互题。有一个有\(n\)个点的内向基环树森林,zlsim位于\(1\)号节点,请你通过以下操作求出哪些节点(包括\(1\))可以通过从这两点开始沿边行走若干步汇至一点。给出两个参数\(u,k\)和点集\(S\),询......
  • P2034题解
    P2034题解题目描述给定一行\(n\)个非负整数\(a_1\cdotsa_n\)。现在你可以选择其中若干个数,但不能有超过\(k\)个连续的数字被选择。你的任务是使得选出的数字的和最大。题解正难则反,考虑将原问题转化为从\(a\)中选若干数使得,任意两数差不大于\(k\),求答案最小。观察......
  • ZS Shuffles Cards 题解
    ZSShufflesCards题解我们把每一次抽一些数字牌再抽到joker视作一局游戏。每局期望轮数首先考虑\(f_i\)表示每一局游戏抽出\(i\)张牌的概率。那么就是先抽出\(i-1\)张数字牌,再抽出一张joker。概率就是:\[f_i=\fracm{n+m-i+1}\prod_{k=0}^{i-2}......
  • CF1858A Buttons题解
    思路我们可以让两人先拿\(c\)里面的,因为\(a\)和\(b\)肯定是自己的,那么公共的“我”也要抢的越多越好,所以我们都要先拿\(c\)里面的。如果\(c\)是奇数,那么先手一定多拿\(1\)个\(c\)里面的,相当于先手可以拿\(a+1\)个,后手可以拿\(b\)个;如果\(c\)是偶数,那么两......
  • CF1858C Yet Another Permutation Problem 题解
    思路这个题是一个简单的构造题。竟然比T2简单,也是少见我们可以首先从\(1\)开始不断乘以\(2\),像这样:\(1,2,4,8,16\cdots,2^x\),直到什么时候超过\(n\)就停止。这样相邻两个数字就可以凑出\(1,2,4,6,\cdots,2^{x-1}\),保证两两不同。然后我们可以从\(3\)开始不......
  • 2023“钉耙编程”中国大学生算法设计超级联赛(9)- 1003 Reasoning 题解
    题目翻译基本符号有一推理系统,其中有这些符号:括号\((\)和\()\);逻辑连接词\(\lnot\)和\(\rightarrow\);全称量词\(\forall\);变量\(u\simz\);常量\(a\sime\);函数\(f\simh\);谓词\(P\simT\)。这些符号是构成系统的基础,他们之间能够组合出一些其他概念:项(term......
  • P3572题解
    P3572题解题面翻译有\(n\)棵树排成一排,第\(i\)棵树的高度是\(d_i\)。有\(q\)只鸟要从第\(1\)棵树到第\(n\)棵树。当第\(i\)只鸟在第\(j\)棵树时,它可以飞到第\(j+1,j+2,\cdots,j+k_i\)棵树。如果一只鸟飞到一颗高度大于等于当前树的树,那么它的劳累值会增......
  • CF1060E Sergey and Subway 题解
    题面由题意可知,在原图中经过边数为\(2\)的一对点,在新图中经过边数为\(1\)。所以每对点在新图中的距离为:\[\begin{aligned}\lceil\frac{dis(i,j)}{2}\rceil=\frac{dis(i,j)+dis(i,j)\;mod\;2}{2}\end{aligned}\]那么我们只需在原图上求出任意两点距离之和并加上\(dis......