题面

题解

首先化一下式子

$$ \frac 1x+\frac 1y=\frac 1{n!} \Rightarrow \frac {x+y}{xy}=\frac 1{n!} \Rightarrow (x+y)n!=xy \\ \Rightarrow(n!-x)+(n!-y)=(n!)^2 $$

看到最后一个式子,由于$n!$是唯一确定的,所以只要确定了$x$,$y$也是确定的,而且是唯一确定的一组$(x,y)$。

根据唯一分解定理,$n!=p_1^{k_1}p_2^{k_2}...p_m^{k_m}\Rightarrow(n!)^2=p_1^{2k_1}p_2^{2k_2}...p_m^{2k_m}$

所以$x$的取值方案数为$\prod_{i=1}^m(2k_i+1)$

线性筛一下就好了。

#include <cstdio>
#include <cstring>
#include <algorithm>
using std::min; using std::max;
using std::swap; using std::sort;
typedef long long ll; template<typename T>
void read(T &x) {
int flag = 1; x = 0; char ch = getchar();
while(ch < '0' || ch > '9') { if(ch == '-') flag = -flag; ch = getchar(); }
while(ch >= '0' && ch <= '9') x = x * 10 + ch - '0', ch = getchar(); x *= flag;
} const int N = 1e6 + 10, Mod = 1e9 + 7;
int n, k[N], cnt, prime[N], id[N], ret = 1;
inline int sqr(int x) { return x * x; }
inline void add(int &x) { x = (x + 1) == Mod ? 0 : (x + 1); } int main () {
scanf("%d", &n);
memset(id, -1, sizeof id);
for(int i = 2; i <= n; ++i) {
if(id[i]) id[i] = ++cnt, prime[cnt] = i;
for(int j = 1; j <= cnt && i * prime[j] <= n; ++j) {
id[i * prime[j]] = 0;
if(!(i % prime[j])) break;
}
}
for(int i = 2; i <= n; ++i) {
int tmp = i;
for(int j = 1; sqr(prime[j]) <= tmp; ++j)
while(!(tmp % prime[j])) add(k[id[prime[j]]]), tmp /= prime[j];
if(tmp > 1) add(k[id[tmp]]);
}
for(int i = 1; i <= cnt; ++i)
ret = (2ll * k[i] + 1) * ret % Mod;
printf("%d\n", ret);
return 0;
}

Bzoj2721 [Violet]樱花(筛法)的更多相关文章

  1. 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 ...

  2. 「BZOJ2721」「LuoguP1445」 [Violet]樱花(数论

    题目背景 我很愤怒 题目描述 求方程 $\frac{1}{x}+\frac{1}{y}=\frac{1}{N!}$ 的正整数解的组数,其中$N≤10^6$. 解的组数,应模$1e9+7$. 输入输出格 ...

  3. bzoj2721 [Violet5]樱花

    bzoj2721 [Violet 5]樱花 给出 \(n\) 求 \(\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\) 的正整数解数量 \(\bmod (10^9+7)\) ...

  4. 【BZOJ2721】樱花(数论)

    [BZOJ2721]樱花(数论) 题面 BZOJ 题解 先化简一下式子,得到:\(\displaystyle n!(x+y)=xy\),不难从这个式子中得到\(x,y\gt n!\). 然后通过\(x ...

  5. Luogu1445 [Violet]樱花 ---- 数论优化

    Luogu1445 [Violet]樱花 一句话题意:(本来就是一句话的) 求方程 $\frac{1}{X} + \frac{1}{Y} = \frac{1}{N!}$ 的正整数解的组数,其中$N \ ...

  6. 洛谷P1445 [Violet] 樱花 (数学)

    洛谷P1445 [Violet] 樱花 题目背景 我很愤怒 题目描述 求方程 1/X+1/Y=1/(N!) 的正整数解的组数,其中N≤10^6. 解的组数,应模1e9+7. 输入输出格式 输入格式: ...

  7. Luogu P1445[Violet]樱花/P4167 [Violet]樱花

    Luogu P1445[Violet]樱花/P4167 [Violet]樱花 真·双倍经验 化简原式: $$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$$ $$\frac ...

  8. luoguP1445 [Violet]樱花

    链接P1445 [Violet]樱花 求方程 \(\frac {1}{X}+\frac {1}{Y}=\frac {1}{N!}\) 的正整数解的组数,其中\(N≤10^6\),模\(10^9+7\) ...

  9. 【筛法求素数】【质因数分解】bzoj2721 [Violet 5]樱花

    http://www.cnblogs.com/rausen/p/4138233.html #include<cstdio> #include<iostream> using n ...

随机推荐

  1. Eclipse导入Java工程导入错误

    1.在一台电脑A上用Eclipse新建的Java工程,换了一台电脑B,再用Eclipse导入时却出现了错误,工程显示红色叹号,并有如下两个错误提示: The project cannot be bui ...

  2. 安装显卡后蓝屏0x00000116解决办法

    1. 亲自遇到蓝屏的问题. 2. 进入安全模式后重装系统,成功. 3. 安装驱动,软件没毛病.安装显卡驱动后,蓝屏. 4. 查看蓝屏错误代码0x00000116, 百度后查看到是显卡驱动的问题. 5. ...

  3. python初步学习-python数据类型-字典(dict)

    字典 字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起.注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息. 注意,你只 ...

  4. H5特性 MutationObserver 监听元素 动态改变iframe高度

    这些代码要写在iframe页中执行 <script type="text/javascript"> $(function () { // Firefox和Chrome早 ...

  5. 边绘边理解prototype跟__proto__

    网上流传着一张讲解prototype跟__proto__关系的图,尽管他已经描绘的很清楚了,但对于初学者来说,江太公感觉还是过于纠结,于是起心重绘,让他们之间的关系更加明晰可理解,一方面出于分享目的, ...

  6. python中的Queue模块

    queue介绍 queue是python的标准库,俗称队列.可以直接import引用,在python2.x中,模块名为Queue.python3直接queue即可 在python中,多个线程之间的数据 ...

  7. python 数据类型 变量 注释

    基本数据类型: 数字 number :整数 int . 浮点数 float.复数 complex.布尔值 bool 列表 list  :  使用 方括号  []  表示,例如: [1,2,'abc'] ...

  8. IntelliJ IDEA 启动方法

    IntelliJ IDEA cd idea-IU-145.1617.8/bin && ./idea.sh

  9. Python使用with结构打开多个文件

    同时打开三个文件,文件行数一样,要求实现每个文件依次读取一行,然后输出,我们先来看比较容易想到的写法: with open(filename1, 'rb') as f1: with open(file ...

  10. Longest Palindromic Substring (最长回文字符串)——两种方法还没看,仍需认真看看

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...