题目链接 啊啊啊我在干什么啊.怎么这么颓一道题做这么久.. 又记错莫比乌斯反演式子了(╯‵□′)╯︵┻━┻ \(Description\) 给定\(n\).有一个初始为空的集合\(S\).令\(g\)表示S中所有数的\(\gcd\).每次随机选择一个\([1,n]\)中的数加到集合\(S\)中去,直到\(g=1\).求集合\(S\)的期望大小.(原题目描述为数列长度,\(n\)是指\(m\),我自己都看混了=-=) \(n\leq10^5\). \(Solution\) 首先不要想\(f[i][…
Steps to One 啊, 我要死了, 这种垃圾题居然没写出来, 最后十分钟才发现错在哪. 不知道为什么我以为 对于一个数x , 除了它的因子和它的倍数都是和它互质的, 我脑子是抽了吗? 随便瞎dpdp的题.. 还熬夜打cf好暴躁啊啊啊. 我求我自己以后打比赛多动动脑子. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define P…
卧槽,这么秀吗??? 暂时留坑...…
题目链接: 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…
蒟蒻数学渣呀,根本不会做. 解法是参考 https://blog.csdn.net/xs18952904/article/details/88785210 这位大佬的. 状态的设计和转移如上面博客一样:dp[i]代表当前序列的gcd为i的期望长度. 那么可以写出状态转移方程:dp[i]=(1+(x/m)∑(j|i,j≠i)dp[j]) / (1-(m/i)/m) (写得有点乱,其实和上面大佬的一样的) 这里要说一下的是 x=∑(t=1,t<=m) [ gcd(t,i)==j ]  就是怎么求1<…
\[ f[1] = 0 \] \[ f[i] = 1 + \frac{1}{m} \sum_{j = 1} ^ n f[gcd(i, j)] \ \ \ \ \ \ (i != 1) \] 然后发现后面这一块gcd的个数只可能是i的约数, 那么考虑枚举约数 \[ f[i] = 1 + \frac{1}{m}\sum_{d | i} f[d] cnt(d, i) \] \(cnt(d, i)\)表示和[1,m]内与i的gcd为d的数字个数 考虑这个东西能够怎么算, \(cnt(d, i)\)显然…
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…
Coprime Arrays CodeForces - 915G Let's call an array a of size n coprime iff gcd(a1, a2, ..., *a**n) = 1, where gcd* is the greatest common divisor of the arguments. You are given two numbers n and k. For each i (1 ≤ i ≤ k) you have to determine the…
[题目]G. Coprime Arrays [题意]当含n个数字的数组的总gcd=1时认为这个数组互质.给定n和k,求所有sum(i),i=1~k,其中sum(i)为n个数字的数组,每个数字均<=i,总gcd=1的方案数.n<=2*10^6.答案将所有sum(i)处理成一个数字后输出. [算法]数论(莫比乌斯反演) [题解]假设当前求sum(k),令f(i)表示gcd=i的数组方案数,F(i)表示i|gcd的数组的方案数. 因为F(x)=Σx|df(d),由莫比乌斯反演定理,f(x)=Σx|d…
https://codeforces.com/contest/1139/problem/D 题意 每次从1,m中选一个数加入队列,假如队列的gcd==1停止,问队列长度的期望 题解 概率正着推,期望反着推 发现每加入一个数,gcd会变为原来gcd的因数 \(dp[x]\) - > \(dp[gcd(x,i)]\) 但是方程却是反方向的 图片 代码 #include<bits/stdc++.h> #define MOD 1000000007 #define MAXN 100005 #def…