2721: [Violet 5]樱花

Time Limit: 5 Sec  Memory Limit: 128 MB
Submit: 547  Solved: 322
[Submit][Status][Discuss]

Description

Input

Output

Sample Input

 

Sample Output

 

HINT

Source

分析:

考虑$y$大于$n!$,但是要求个数,所以不可能无限大,所以我们需要寻找的就是上界,考虑让$y=n!+t$,那么$\frac {1}{x}+\frac {1}{n!+t}=\frac {1}{n!}$...

然后化简一下:$n!(n!+t)+x(n!)=x(n!+t)-->x=\frac {n!(n!+t)}{t}-->x=\frac {(n!)^{2}}{t}+n!$...

所以个数就是$(n!)^{2}$的约数个数...

代码:

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
//by NeighThorn
using namespace std; const int maxn=1000000+5,mod=1e9+7; int n,cnt,vis[maxn],pri[maxn],num[maxn],Min[maxn]; inline void prework(void){
cnt=0;
for(int i=2;i<=n;i++){
if(!vis[i])
pri[++cnt]=i,Min[i]=cnt;
for(int j=1;j<=cnt&&pri[j]*i<=n;j++){
vis[i*pri[j]]=1,Min[i*pri[j]]=j;
if(i%pri[j]==0)
break;
}
}
} inline void calc(int x){
while(x!=1)
num[Min[x]]++,x/=pri[Min[x]];
} signed main(void){
scanf("%d",&n);prework();
for(int i=1;i<=n;i++)
calc(i);
long long ans=1LL;
for(int i=1;i<=cnt;i++)
(ans+=1LL*ans*num[i]%mod*2%mod)%=mod;
printf("%lld\n",ans);
return 0;
}

  


By NeighThorn

2721: [Violet 5]樱花的更多相关文章

  1. 【BZOJ 2721】 2721: [Violet 5]樱花 (筛)

    2721: [Violet 5]樱花 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 599  Solved: 354 Description Input ...

  2. bzoj 2721[Violet 5]樱花 数论

    [Violet 5]樱花 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 671  Solved: 395[Submit][Status][Discuss ...

  3. [BZOJ 2721] [Violet 5] 樱花 【线性筛】

    题目链接:BZOJ - 2721 题目分析 题目大意:求出 1 / x + 1 / y = 1 / n! 的正整数解 (x, y) 的个数. 显然,要求出正整数解 (x, y) 的个数,只要求出使 y ...

  4. 2721: [Violet 5]樱花|约数个数

    先跪一发题目背景QAQ 显然x,y>n!,然后能够设y=n!+d 原式子能够化简成 x=n!2d+n! 那么解的个数也就是n!的因子个数,然后线性筛随便搞一搞 #include<cstdi ...

  5. BZOJ 2721: [Violet 5]樱花

    (X-N)(Y-N)=N^2 #include<cstdio> using namespace std; const int mod=1e9+7; int n,cnt,isprime[10 ...

  6. BZOJ_2721_[Violet 5]樱花_数学

    BZOJ_2721_[Violet 5]樱花_数学 Description Input Output $\frac{1}{x}+\frac{1}{y}=\frac{1}{m}$ $xm+ym=xy$ ...

  7. 【BZOJ2721】[Violet 5]樱花 线性筛素数

    [BZOJ2721][Violet 5]樱花 Description Input Output Sample Input 2 Sample Output 3 HINT 题解:,所以就是求(n!)2的约 ...

  8. BZOJ2721 [Violet 5]樱花

    先令n! = a: 1 / x + 1 / y = 1 / a  =>  x = y * a / (y - a) 再令 k = y - a: 于是x = a + a ^ 2 / k  => ...

  9. 【bzoj2721】[Violet 5]樱花

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=2721 好久没做数学题了,感觉有些思想僵化,走火入魔了. 这道题就是求方程$ \frac ...

随机推荐

  1. IDEA Tomcat 日志和输出中文乱码问题

    说明:该方法是在网上查找的其他方法均无效的情况下自己摸索出的设置.既然别人有效的设置在我这里无效,那么以下设置自然有可能无效.建议综合多个搜索结果进行尝试. 仅需要进行两处设置 1. 更改 IDEA ...

  2. 用dom1来实现,根据光标移动自动给表单加上背景色,光标移开自动去除背景色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 十一、Shell 输入/输出重定向

    Shell 输入/输出重定向 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令 ...

  4. (转)规划从 OpenGL ES 2.0 到 Direct3D 的移植

    如果你移植 iOS 或 Android 平台中的游戏,那么你可能需要在 OpenGL ES 2.0 方面进行大量投资.如果你准备将你的图形管道代码库移动到 Direct3D 11 和 Windows ...

  5. 怎样查看web软件例如apache的连接数

    查看连接总数和当前的连接数 netstat -ant | grep $ip:80 | wc -l netstat -ant | grep $ip:80 | grep EST | wc -l 查看IP访 ...

  6. 本地Navicat连接虚拟机MySQL

    安装完MySQL后,使用mysql命令进去,然后执行以下命令 grant all privileges on hive_metadata.* to 'hive'@'%' identified by ' ...

  7. python flask学习第1天

    flask安装: 第一个flask程序: 用pycharm新建一个flask项目,新建项目的截图如下: app.py代码如下: #从flask这个包中导入Flask这个类 #Flask这个类是项目的核 ...

  8. angularjs的使用技巧

    1. AngularJS的module函数有两种用法, a. 定义一个module, 需要传入2个参数,module('moduleName', []), 第一个参数是新的module名称,第二个参数 ...

  9. Groundhog Build Home - HDU - 3932(模拟退火)

    题意 给定一个矩形内的\(n\)个点,在矩形中找一个点,离其他点的最大距离最小. 题解 模拟退火. 这个题需要\(x\)和\(y\)坐标随机动的时候多随机几次.否则就WA了.另外由于随机多次,如果温度 ...

  10. SSH无密码登录及远程拷贝命令SCP的使用

    SSH无密码登录 1.生成密钥对(公钥和私钥) $ cd /home/cen/.ssh $ ssh-keygen -t rsa #生成密钥,使用rsa方式进行加密,四个回车 $ ssh-copy-id ...