两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
2020-2021:teams:intrepidsword:zhongzihao:project_euler [2021/02/11 22:47] toxel add 355 |
2020-2021:teams:intrepidsword:zhongzihao:project_euler [2021/02/20 21:05] (当前版本) toxel add 379 |
||
---|---|---|---|
行 146: | 行 146: | ||
**题解**:不容易发现,不会选取某个包含超过两种小质数($\le\sqrt{n}$)的数。大致是因为大质数非常多,因而能被小质数匹配到的相对很少,因此如果把两个小质数放一起,不如让他们给大质数作贡献(很容易凑到接近 $n$)。那么二分图最大权匹配即可。 | **题解**:不容易发现,不会选取某个包含超过两种小质数($\le\sqrt{n}$)的数。大致是因为大质数非常多,因而能被小质数匹配到的相对很少,因此如果把两个小质数放一起,不如让他们给大质数作贡献(很容易凑到接近 $n$)。那么二分图最大权匹配即可。 | ||
+ | ===== 379. Least common multiple count ===== | ||
+ | **题目大意**:求满足 $x\le y,[x,y]\le n$ 的 $(x,y)$ 对数量。 | ||
+ | |||
+ | **题解**:答案为 | ||
+ | |||
+ | $$ | ||
+ | \begin{aligned} | ||
+ | &\sum_{\gcd=1}^{n}\sum_{x=1}^{n}\sum_{y=1}^{n}[(x,y)=\gcd][\frac{xy}{\gcd}\le n]\\ | ||
+ | =&\sum_{\gcd=1}^{n}\sum_{\gcd\mid d}\sum_{x=1}^{n}\sum_{y=1}^{n}\mu(\frac{d}{\gcd})[d\mid(x,y)][\frac{xy}{\gcd}\le n]\\ | ||
+ | =&\sum_{\gcd=1}^{n}\sum_{\gcd\mid d}\sum_{d\mid x}\sum_{d\mid y}\mu(\frac{d}{\gcd})[\frac{xy}{\gcd}\le n]\\ | ||
+ | =&\sum_{\gcd=1}^{n}\sum_{\gcd\mid d}\mu(\frac{d}{\gcd})S(\lfloor\frac{n}{d^2/\gcd}\rfloor)\\ | ||
+ | =&\sum_{\gcd=1}^{n}\sum_{i=1}^{\lfloor\frac{n}{\gcd}\rfloor}\mu(i)S(\lfloor\frac{n}{i^2\gcd}\rfloor) | ||
+ | \end{aligned} | ||
+ | $$ | ||
+ | |||
+ | 其中 $S(N)$ 表示 $xy\le N$ 的 $xy$ 数量。考虑用类杜教筛求出所有 $S$(本题要带 $\log$,呃,注意到 $S=\sigma$ 的话也不用带 $\log$)。然后枚举 $i$ 根号分块即可,这部分复杂度是 $\sqrt{n}\log n$ 的。 | ||
+ | |||
+ | 这里就锻炼一下推导能力,min_25 筛应该还快一点。 | ||
===== 423. Consecutive die throws ===== | ===== 423. Consecutive die throws ===== | ||
行 186: | 行 204: | ||
**题解**:可以猜测会有大段连续的 $1$。如果 $\gcd(n,f(n-1))=1$,那么下一个合法的位置应该和 $f(n-1)-n$ 不互质,随便算算就好。实际只需要迭代几百次(很可能中间有一个大质数)。 | **题解**:可以猜测会有大段连续的 $1$。如果 $\gcd(n,f(n-1))=1$,那么下一个合法的位置应该和 $f(n-1)-n$ 不互质,随便算算就好。实际只需要迭代几百次(很可能中间有一个大质数)。 | ||
+ | |||
+ | ===== 454. Diophantine reciprocals III ===== | ||
+ | |||
+ | **题目大意**:设有不定方程 $\frac{1}{x}+\frac{1}{y}=\frac{1}{n}$,求满足 $x<y\le N$ 的解数。 | ||
+ | |||
+ | **题解**:令 $x=x't,y=y't,(x',y')=1$,则 $\frac{1}{n}=\frac{x'+y'}{tx'y'}$。由于 $(x'+y',x')=1,(x'+y',y')=1$,因此 $(x'+y',x'y')=1$。因此 $x'+y'\mid t$。故 $t$ 的取法有 $\lfloor\frac{N}{y'(x'+y')}\rfloor$ 种。 | ||
+ | |||
+ | 答案即为 | ||
+ | |||
+ | $$ | ||
+ | \begin{aligned} | ||
+ | &\sum_{y'=1}^{+\infty}\sum_{x'=1}^{y'-1}[(x',y')=1]\lfloor\frac{N}{y'(x'+y')}\rfloor\\ | ||
+ | =&\sum_{d=1}^{+\infty}\mu(d)\sum_{y'=1}^{+\infty}\sum_{x'=1}^{y'-1}[d|(x',y')]\lfloor\frac{N}{y'(x'+y')}\rfloor\\ | ||
+ | =&\sum_{d=1}^{+\infty}\mu(d)\sum_{y'=1}^{+\infty}\sum_{x'=1}^{y'-1}\lfloor\frac{\frac{N}{d^{2}}}{y'(x'+y')}\rfloor | ||
+ | \end{aligned} | ||
+ | $$ | ||
+ | |||
+ | 枚举 $d$,枚举 $y'$,和式根号分块,即可达到较好的时间复杂度。 | ||
===== 479. Roots on the Rise ===== | ===== 479. Roots on the Rise ===== |