樱花

Posted onlyblues

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了樱花相关的知识,希望对你有一定的参考价值。

樱花

给定一个整数 $n$,求有多少正整数数对 $(x,y)$ 满足 $\\frac1x+\\frac1y=\\frac1n!$。

输入格式

一个整数 $n$。

输出格式

一个整数,表示满足条件的数对数量。

答案对 $10^9+7$ 取模。

数据范围

$ 1 \\leq n \\leq 10^6$

输入样例:

2

输出样例:

3

样例解释

共有三个数对 $(x,y)$ 满足条件,分别是 $(3,6)$,$(4,4)$,$(6,3)$。

 

解题思路

\\beginalign*
\\frac1x + \\frac1y &= \\frac1n! \\\\\\\\
\\fracx+yxy &= \\frac1n! \\\\\\\\
x \\cdot n! + y \\cdot n! &= x \\cdot y
\\endalign*

  可以发现有两个自变量,因此可以通过枚举来固定$x$然后通过$x$与$y$的关系来得到满足条件的$y$。其中$y$关于$x$的函数为$y = \\dfracx \\cdot n!x - n!$。

  现在问题就变成了有多少个正整数$x$使得$\\dfracx \\cdot n!x - n!$是一个正整数。由于分子分母同时含有$x$不方便处理,因此把分子的$x$去掉。$$y = \\dfracx \\cdot n!x - n! = \\frac(x - n! + n!) \\cdot n!x - n! = n! + \\frac(n!)^2x - n!$$

  由于$n!$必然是一个正整数,因此问题又变成了有多少个正整数$x$使得$\\dfrac(n!)^2x - n!$是一个正整数。$x$一定正整数,但分母的$x - n!$不一定是正整数,事实上根据$\\frac1x+\\frac1y=\\frac1n!$得到$\\frac1y=\\frac1n! - \\frac1x$,由于$x$和$y$均要满足正整数的条件,因此$x$必然要满足$x > n!$,因此$x - n! > 0$。因此问题就等价于有多少个正整数$x$使得$x - n!$是$(n!)^2$的约数,等价于就是问$(n!)^2$的约数个数。其中如果一个数$N = P_1^\\alpha_1 \\cdot P_2^\\alpha_2 \\cdot \\cdots \\cdot P_n^\\alpha_n$,那么约数的个数为$\\left( \\alpha_1 + 1 \\right) \\cdot \\left( \\alpha_2 + 1 \\right) \\cdot \\cdots \\cdot \\left( \\alpha_n + 1 \\right)$。

  AC代码如下:

 #include <bits/stdc++.h>
 using namespace std;
 
 const int N = 1e6 + 10, mod = 1e9 + 7;
 
 int primes[N], cnt;
 bool vis[N];
 
 void get_prime(int n) 
     for (int i = 2; i <= n; i++) 
         if (!vis[i]) primes[cnt++] = i;
         for (int j = 0; primes[j] <= n / i; j++) 
             vis[primes[j] * i] = true;
             if (i % primes[j] == 0) break;
         
     
 
 
 int main() 
     int n;
     scanf("%d", &n);
     get_prime(n);
     int ret = 1;
     for (int i = 0; i < cnt; i++) 
         int p = primes[i], s = 0;
         for (int j = n; j; j /= p) 
             s += j / p;
         
         ret = ret * (2ll * s + 1) % mod;
     
     printf("%d", ret);
     
     return 0;
 

 

参考资料

  AcWing 1294. 樱花(算法提高课):https://www.acwing.com/video/691/

以上是关于樱花的主要内容,如果未能解决你的问题,请参考以下文章

兔子与樱花[HEOI2015]

[HEOI2015]兔子与樱花

画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)

BZOJ4027[HEOI2015]兔子与樱花 贪心

洛谷动态规划/背包P1833 樱花

又是樱花盛开的季节,使用小乌龟来画一颗樱花树吧