洛谷 Codeforces 非常套路的一道题,很适合我在陷入低谷时提升信心-- 思路 显然我们需要大力推式子. 设\(p_{a_i}=i\),则有 \[ \begin{align*} n(n-1)ans&=\sum_i \sum_j \varphi(ij)dis(p_i,p_j)\\ &=\sum_i \sum_j \frac{\varphi(i)\varphi(j)\gcd(i,j)}{\varphi(\gcd(i,j))} dis(i,j)\\ &=\sum_d \frac{d…
题目链接 \(Description\) 给定一棵树,求\[\frac{1}{n(n-1)/2}\times\sum_{i\in[1,n],j\in[1,n],i\neq j}\varphi(a_i\times a_j)\times dis(i,j)\ \ \ \ (mod\ 10^9+7)\] 其中\(a_i\)是\([1,n]\)的一个排列,两两不同. \(Solution\) 前面直接最后乘逆元就可以.看后面的\(\sum\)怎么化. 要想办法把\(\varphi(a_i\times a_…
Codeforces 题目传送门 & 洛谷题目传送门 1A,就 nm 爽( 首先此题一个很棘手的地方在于贡献的计算式中涉及 \(\varphi(a_ia_j)\),而这东西与 \(i,j\) 都有关,无法拆开来计算,因此无法独立考虑 \(i,j\) 的贡献.因此我们要想方设法把这里面的 \(a_ia_j\) 拆开来,我们考虑探究 \(\varphi(a_ia_j)\) 与 \(\varphi(a_i),\varphi(a_j)\) 有什么关系,很容易发现一个性质,那就是 \(\varphi(a_…
Tired of boring dates, Leha and Noora decided to play a game. Leha found a tree with n vertices numbered from 1 to n. We remind you that tree is an undirected graph without cycles. Each vertex v of a tree has a number av written on it. Quite by accid…
Coprime Arrays 啊,我感觉我更本不会莫比乌斯啊啊啊, 感觉每次都学不会, 我好菜啊. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair<LL, LL> #define PLI pair<LL, int> #define PII pair<int, int> #d…
传送门 简化题意:给出一棵\(n\)个点的树,编号为\(1\)到\(n\),第\(i\)个点的点权为\(a_i\),保证序列\(a_i\)是一个\(1\)到\(n\)的排列,求 \[ \frac{1}{n(n-1)} \sum\limits_{i=1}^n \sum\limits_{j=1}^n \varphi(a_ia_j) dist(i,j)\] 其中\(dist(i,j)\)为树上\(i,j\)两点的距离. 看到\(\varphi\)第一反应推式子 因为序列\(a_i\)是一个\(1\)到…
题意:求,其中d(x) 表示 x 的约数个数. 析:其实是一个公式题,要知道一个结论 知道这个结论就好办了. 然后就可以解决这个问题了,优化就是记忆化gcd. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #includ…
Description 给定一颗 \(n\) 个顶点的树,顶点 \(i\) 的权值为 \(a_i\).求: \[\frac{1}{n(n-1)}\sum_{i=1}^n\sum_{j=1}^n\varphi(a_i\times a_j)\times\text{dist}(i, j) \] 其中 \(a\) 为一个 \(1\sim n\) 的排列. Hint \(1\le n\le 2\times 10^5\) Solution 据说是套路题 然而我不会这个套路于是我觉得是神题 开一个 blog…
[CF809E]Surprise me!(动态规划,虚树,莫比乌斯反演) 题面 洛谷 CodeForces 翻译: 给定一棵\(n\)个节点的树,每个点有一个权值\(a[i]\),保证\(a[i]\)是一个\(1..n\)的排列. 求\[\frac{1}{n(n-1)}\sum_{i=1}^n\sum_{j=1}^n\varphi(a_i*a_j)·dist(i,j)\] 其中,\(\varphi(x)\)是欧拉函数,\(dist(i,j)\)表示\(i,j\)两个节点在树上的距离. 题解 神题…
题目链接: http://codeforces.com/contest/1139/problem/D 题意: 在$1$到$m$中选择一个数,加入到一个初始为空的序列中,当序列的$gcd$和为$1$时,停止加入,求序列的期望长度 数据范围: $1 \leq m \leq 10^{9}$ 分析: 定义$f[x$]为$gcd$等于$x$时把序列$gcd和$改变成1的期望长度,定义$G(x,y)$为$i$在1到$n$范围,满足$gcd(x,i)=y$,$i$的数量,得到以下公式: $$f[i]=1+\f…