bzoj2721 [Violet5]樱花
给出 \(n\) 求 \(\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\) 的正整数解数量 \(\bmod (10^9+7)\)
\(n\leq10^6\)
数论
先化式子
\]
令 \(a=x-n!,\ b=y-n!\)
原题即为求 \(ab=n!^2\) 的整数解数量,即为 \(n!^2\) 的因数个数
令 \(n!=\displaystyle\prod_{p_i\in p}p_i^{c_i}\)
答案即为: $$\displaystyle\prod_{p_i\in p}{(2\times c_i+1)}$$
\(p.s.\ :\) 如果原题为本质不同的方案数,即 \(\verb|Luogu5253 丢番图|\) ,答案即为 \(\frac{ans+1}{2}\) 。因为对于每个 \(\{(a,\ b) | a\neq b\}\) 都被多算了一遍。
至于求出 \(c_i\) ,可以先筛出 \(1\cdots n\) 的每个质数 \(p\) ,然后考虑阶乘 \(n!\) 一共包含多少个 \(p\)
\(n!\) 中 \(p\) 的个数等于 \(1\cdots n\) 中每个数包含 \(p\) 的个数之和。
在 \(1\cdots n\) 中, 至少包含一个 \(p\) 的数显然有 \(\lfloor\frac{n}{p}\rfloor\) 个。而至少包含两个 \(p\) 的数有 \(\lfloor\frac{n}{p^2}\rfloor\) 个。不过其中的一个质因子已经在 \(\lfloor\frac{n}{p}\rfloor\) 中统计过了,所以只需要再统计第二个质因子,即累加上 \(\lfloor\frac{n}{p^2}\rfloor\) ,而不是 \(2\times\lfloor\frac{n}{p^2}\rfloor\) 。 \(\lfloor\frac{n}{p^3}\rfloor,\ \lfloor\frac{n}{p^4}\rfloor,\ \cdots\) 同理
综上所述, \(n!\) 中质因子 \(p\) 的个数为: $$\displaystyle\sum_{p^k\leq n}{\lfloor\frac{n}{p^k}\rfloor}$$
时间复杂度 \(O(n\log n)\)
代码
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 10, P = 1e9 + 7;
int n, tot, p[maxn];
void sieve() {
int tmp = sqrt(n) + 1;
for (int i = 2; i <= tmp; i++) {
for (int j = i * i; j <= n; j += i) {
p[j] = 1;
}
}
for (int i = 2; i <= n; i++) {
if (!p[i]) p[++tot] = i;
}
}
int main() {
scanf("%d", &n);
sieve();
int ans = 1;
for (int i = 1; i <= tot; i++) {
int x = 1, s = 0;
while (1ll * p[i] * x <= n) {
x *= p[i], s += n / x;
}
ans = 1ll * ans * (s << 1 | 1) % P;
}
printf("%d", ans);
return 0;
}
bzoj2721 [Violet5]樱花的更多相关文章
- BZOJ2721 Violet5樱花(数论)
有(x+y)n!=xy.套路地提出x和y的gcd,设为d,令ad=x,bd=y.则有(a+b)n!=abd.此时d已是和a.b无关的量.由a与b互质,得a+b与ab互质,于是将a+b除过来得n!=ab ...
- 【BZOJ2721】樱花(数论)
[BZOJ2721]樱花(数论) 题面 BZOJ 题解 先化简一下式子,得到:\(\displaystyle n!(x+y)=xy\),不难从这个式子中得到\(x,y\gt n!\). 然后通过\(x ...
- 【BZOJ-2721】樱花 线性筛 + 数学
2721: [Violet 5]樱花 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 499 Solved: 293[Submit][Status][D ...
- Bzoj2721 [Violet]樱花(筛法)
题面 题解 首先化一下式子 $$ \frac 1x+\frac 1y=\frac 1{n!} \Rightarrow \frac {x+y}{xy}=\frac 1{n!} \Rightarrow ( ...
- 【BZOJ2721】[Violet 5]樱花 线性筛素数
[BZOJ2721][Violet 5]樱花 Description Input Output Sample Input 2 Sample Output 3 HINT 题解:,所以就是求(n!)2的约 ...
- bzoj2721 / P1445 [Violet]樱花
P1445 [Violet]樱花 显然$x,y>n$ 那么我们可以设$a=n!,y=a+t(t>0)$ 再对原式通分一下$a(a+t)+ax=x(a+t)$ $a^{2}+at+ax=ax ...
- 【bzoj2721】[Violet 5]樱花
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=2721 好久没做数学题了,感觉有些思想僵化,走火入魔了. 这道题就是求方程$ \frac ...
- 「BZOJ2721」「LuoguP1445」 [Violet]樱花(数论
题目背景 我很愤怒 题目描述 求方程 $\frac{1}{x}+\frac{1}{y}=\frac{1}{N!}$ 的正整数解的组数,其中$N≤10^6$. 解的组数,应模$1e9+7$. 输入输出格 ...
- 【筛法求素数】【质因数分解】bzoj2721 [Violet 5]樱花
http://www.cnblogs.com/rausen/p/4138233.html #include<cstdio> #include<iostream> using n ...
随机推荐
- elementUI vue v-model的修饰符
v-model的修饰符 v-model.lazy 只有在input输入框发生一个blur时才触发 v-model.trim 将用户输入的前后的空格去掉 v-model.number 将用户输入的字符串 ...
- POJ3734 Blocks(生成函数)
题意 链接 长度为\(n\)的序列,用红黄蓝绿染色,其中红黄只能是偶数,问方案数 Sol 生成函数入门题 任意的是\(e^x\),偶数的是\(\frac{e^x + e^{-x}}{2}\) 最后化完 ...
- loj#2049. 「HNOI2016」网络(set 树剖 暴力)
题意 题目链接 Sol 下面的代码是\(O(nlog^3n)\)的暴力. 因为从一个点向上只会跳\(logn\)次,所以可以暴力的把未经过的处理出来然后每个点开个multiset维护最大值 #incl ...
- vue-cil和webpack中本地静态图片的路径问题解决方案
1 本地图片动态绑定img的src属性 一般我们在html中或者vue组件文件中引用图片是这样,这是不需要做特别处理的 我们将图片放入assets中或者重新建立个文件夹img什么的都可以,随意- 但是 ...
- (网页)sweetalert api 中文开发文档和手册,项目放弃alert
弹框json的特别好使. sweetalert 示例 基本信息弹窗swal("这是一条信息!") 标题与文本的信息弹窗swal("这是一条信息!", " ...
- 添加用户到sudoers
** is not in the sudoersfile. This incident will bereported.” (用户不在sudoers文件中……) 处理这个问题很简单,但应该先理解其原 ...
- peewee基本操作
本文将简单的介绍Peewee,一览它的主要特点,主要涉及到: 模型定义 存储数据 检索数据 注意:如果你偏爱稍微高级一点的教程, peewee建立类似twitter应用 是一篇结合Flask框架与pe ...
- java----八种排序算法
1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数……直 ...
- MyBatis笔记----SSM框架mybatis3整合springmvc spring4
上节 无springmvc框架 http://www.cnblogs.com/tk55/p/6661786.html 结构 jar包 web.xml 与index.jsp <?xml versi ...
- C#面向对象 1
using System; using System.Collections.Generic; using System.Collections; using System.Linq; using S ...