[Violet]樱花
题目链接
前置技能
- 初中基础的因式分解
- 线性筛
- \(O(nlog)\)的分解质因数
- 唯一分解定理
题解
首先来分解一下式子
\]
通分可化为:
\]
两边同时乘\(xy*(n!)\)
\]
移项得:
\]
两边同时加上\((n!)^2\)
\]
通过十字相乘可因式分解为:
\]
\]
\]
又因为\(x,y\)为正整数,所以\((x-n!),(y-n!)\)也为正整数,所以我们不妨令
\]
则原式可以化为:
\]
根据唯一分解定理可知
\]
\((n!)^2\)的因数个数为:
\]
所以我们只要算出\(a_1,a_2,a_3...a_n\)就好了
至于怎么算,线性筛一遍,在分解质因数,求\(a_i\)就好了
code
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1000000;
const int mod = 1e9+7;
int prime[N+1],a[N+1],js,v[N+1],c[N+1];
int read(){
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9') f=(c=='-')?-1:1,c=getchar();
while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
return x*f;
}
void pd(){
for(int i=2;i<=N;i++){
if(!prime[i]) a[++js]=i,v[i]=i;
for(int j=1;j<=js;j++){
if(i*a[j]>N) break;
prime[i*a[j]]=1;
v[i*a[j]]=a[j];
}
}
}
main(){
int n=read(),x,ans=1;
pd();
v[1]=1;
for(int i=1;i<=n;i++)
for(int j=i;j!=1;j/=v[j])
c[v[j]]++;
for(int i=1;i<=N;i++)
ans*=(c[i]*2+1),ans%=mod;
printf("%lld",ans%mod);
}
[Violet]樱花的更多相关文章
- Luogu1445 [Violet]樱花 ---- 数论优化
Luogu1445 [Violet]樱花 一句话题意:(本来就是一句话的) 求方程 $\frac{1}{X} + \frac{1}{Y} = \frac{1}{N!}$ 的正整数解的组数,其中$N \ ...
- 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 ...
- 洛谷P1445 [Violet] 樱花 (数学)
洛谷P1445 [Violet] 樱花 题目背景 我很愤怒 题目描述 求方程 1/X+1/Y=1/(N!) 的正整数解的组数,其中N≤10^6. 解的组数,应模1e9+7. 输入输出格式 输入格式: ...
- 「BZOJ2721」「LuoguP1445」 [Violet]樱花(数论
题目背景 我很愤怒 题目描述 求方程 $\frac{1}{x}+\frac{1}{y}=\frac{1}{N!}$ 的正整数解的组数,其中$N≤10^6$. 解的组数,应模$1e9+7$. 输入输出格 ...
- Luogu P1445[Violet]樱花/P4167 [Violet]樱花
Luogu P1445[Violet]樱花/P4167 [Violet]樱花 真·双倍经验 化简原式: $$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$$ $$\frac ...
- luoguP1445 [Violet]樱花
链接P1445 [Violet]樱花 求方程 \(\frac {1}{X}+\frac {1}{Y}=\frac {1}{N!}\) 的正整数解的组数,其中\(N≤10^6\),模\(10^9+7\) ...
- BZOJ2721或洛谷1445 [Violet]樱花
BZOJ原题链接 洛谷原题链接 其实推导很简单,只不过我太菜了想不到...又双叒叕去看题解 简单写下推导过程. 原方程:\[\dfrac{1}{x} + \dfrac{1}{y} = \dfrac{1 ...
- Luogu1445 [Violet]樱花
题面 题解 $$ \frac 1x + \frac 1y = \frac 1{n!} \\ \frac{x+y}{xy}=\frac 1{n!} \\ xy=n!(x+y) \\ xy-n!(x+y) ...
- Bzoj2721 [Violet]樱花(筛法)
题面 题解 首先化一下式子 $$ \frac 1x+\frac 1y=\frac 1{n!} \Rightarrow \frac {x+y}{xy}=\frac 1{n!} \Rightarrow ( ...
随机推荐
- 《PYTHON学习手册》(《Learing Python》--Mark Lutz)书摘
1. Python是为了让脚本的质量等级再提升几个级别. 2. <learning Python>和<programming Python>反映了作者培训内容的两部分:核心语言 ...
- ATM:模拟实现一个ATM + 购物商城程序
额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款接口 ATM记录操作日志 提供管理接 ...
- 转:Python正则表达式指南
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
- webRTC peerconnection_client demo创建VS工程
编译了webRTC Windows源码之后,想使用编译出来的库写一个demo出来,但是又不知到怎么下手.就想通过源码中带的示例peerconnection_client和peerconnection_ ...
- eclipse+minGW 调试ffmpeg错误:No symbol table is loaded. Use the "file" command.
转载地址:http://www.blogjava.net/fancydeepin/archive/2012/11/19/391520.html 数据结构第二篇: eclipse SDK 安装和配置 ...
- webapi的几种过滤器
好久没有写博客了 今天就来聊聊asp.net webapi的过滤器们 过滤器主要有这么几种 AuthorizationFilterAttribute 权限验证 ActionFilterAttribut ...
- BP算法的推导
反向传播算法的推导 如图为2-layers CNN,输入单元下标为i,数量d:隐层单元下表j,数量\(n_H\):输出层下表k,单元数量c 1.目标 调整权系数\(w_{ji}\),\(w_{kj}\ ...
- OSCache-JSP页面缓存(2)
如果在jsp中使用如下标签 <cache:cache key="foobar" scope="session"> some jsp content ...
- MFC小程序
1.将菜单栏归零,工具栏放在窗口低部,加载自己新建的工具栏 CMainFrame::OnCreate()函数中 this->SetMenu(0); 2.将窗口初始化为最大化 APP类中:m_pM ...
- Android P2P语音通话实现
1.http://www.cnblogs.com/milospooner/archive/2012/07/13/2590950.html 2.http://my.oschina.net/sanshan ...