2721: [Violet 5]樱花

Time Limit: 5 Sec  Memory Limit: 128 MB
Submit: 499  Solved: 293
[Submit][Status][Discuss]

Description

Input

Output

Sample Input

 3

Sample Output

 9

HINT

Source

interviewstreet--EQUATIONS

Solution

巧妙!

$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$ 令$z=n!$

则可以得到$\frac{1}{x}+\frac{1}{y}=\frac{1}{z}=>x=\frac{yz}{y-z}$

再另$t=y-z$则可以得到$x=z+\frac{z^{2}}{t}$

所以我们求$n!^{2}$的约数,就是答案,这就利用到线筛

Code

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
#define P 1000000007
#define LL long long
int N,cnt,prime[],z[],tmp;
bool flag[];
LL ans=1LL;
void Getprime()
{
flag[]=; cnt=;
for (int i=; i<=N; i++)
{
if (!flag[i]) prime[++cnt]=i;
for (int j=; j<=cnt && prime[j]*i<=N; j++)
{
flag[i*prime[j]]=;
if (prime[j]%i==) break;
}
}
}
void Calc(int x)
{
for (int i=prime[x]; i<=N; i+=prime[x])
for (int j=i; j%prime[x]==; j/=prime[x]) z[x]++;
}
int main()
{
scanf("%d",&N);
Getprime();
for (int i=; i<=cnt; i++) Calc(i);
for (int i=; i<=cnt; i++) printf("%d ",z[i]); puts("");
for (int i=; i<=cnt; i++) ans=((LL)ans*(z[i]<<|)%P)%P;
printf("%lld\n",ans);
return ;
}

【BZOJ-2721】樱花 线性筛 + 数学的更多相关文章

  1. BZOJ 2190 仪仗队(线性筛欧拉函数)

    简化题意可知,实际上题目求得是gcd(i,j)=1(i,j<=n)的数对数目. 线性筛出n大小的欧拉表,求和*2+1即可.需要特判1. # include <cstdio> # in ...

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

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

  3. bzoj 2693: jzptab 线性筛积性函数

    2693: jzptab Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 444  Solved: 174[Submit][Status][Discus ...

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

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

  5. bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛

    Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...

  6. bzoj 2795 [Poi2012]A Horrible Poem hash+线性筛

    题目大意 bzoj 2795 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节. 如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到. n<=500 ...

  7. BZOJ 2693: jzptab [莫比乌斯反演 线性筛]

    2693: jzptab Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1194  Solved: 455[Submit][Status][Discu ...

  8. BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 4436  Solved: 1957[Submit][Status][Discuss ...

  9. Bzoj 2186: [Sdoi2008]沙拉公主的困惑 乘法逆元,线性筛,欧拉函数,数论

    2186: [Sdoi2008]沙拉公主的困惑 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2560  Solved: 857[Submit][St ...

随机推荐

  1. Mysql优化系列(0)--总结性梳理

    对于一个网站来说,在运行很长一段时间后,数据库瓶颈问题会越来越暴露出来.作为运维人员,对数据库做必要的优化十分重要!下面总结以往查阅到的以及自己工作中的一些优化操作经验,并根据OSI七层模型从下往上进 ...

  2. 去掉Win7资源管理器左侧导航窗格中的收藏夹、库等的方法

    去掉Win7资源管理器的收藏夹/库/家庭组/网络的方法 将Windows 7资源管理器左侧导航窗格中的收藏夹.库.家庭组.网络全部去掉,只剩下计算机, 以收藏夹为例作简要说明. 首先打开注册表编辑器, ...

  3. Android手机浏览器访问本地网络相关问题

    为了测试开发的手机网站,常常需要使手机直接访问本地网络. 在这个过程中碰到几个问题,记下来供以后参考 1. 在本地主机运行apache后,使用localhost和127.0.0.1可以访问页面,但使用 ...

  4. Codevs 1229 数字游戏

    1229 数字游戏  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver     题目描述 Description Lele 最近上课的时候都很无聊,所以他发明了 ...

  5. CSS3 动画效果带来的bug

    css3 动画效果比如transition:all 2s linear;这种用来计算及时的物体坐标的话会带来一定的问题 比如把一个DIV从A点移动到B点.JS为DIV.style.left=B; 但是 ...

  6. C#并发编程经典实例--笔记

    一.简介   --并发         同时做多件事情 --多线程         并发的一种形式,它采用多个线程来执行程序.             **如非必要,代码里不要出现 "new ...

  7. 杭电1008 Elevator

    #include <stdio.h> #include <stdlib.h> int main() { int n; int i,j; int num[101]; while( ...

  8. Nutch搜索引擎系列(目录)

    下面是Nutch搜索系列目录,希望对研究Nutch的同学有所帮助. 目录安排: 1)Nutch搜索引擎(第1期)_ Nutch简介及安装[下载] 2)Nutch搜索引擎(第2期)_ Solr简介及安装 ...

  9. 读书摘要,Hackable Projects

    完整读完Google的三篇谈Hackable Projects的文章,以及一篇从Test Pyramid看UnitTest的比重.一篇谈Optimal Logging的文章,感觉这5篇在测试.日志两个 ...

  10. DOM 元素节点几何量与滚动几何量

    当在 Web 浏览器中查看 HTML 文档时,DOM 节点被解析,并被渲染成盒模型(如下图),有时我们需要知道一些信息,比如盒模型的大小,盒模型在浏览器中的位置等等,本文我们就来详细了解下元素节点的几 ...