Jzoj4782 Math
来源:互联网 发布:数据库应用access 编辑:程序博客网 时间:2024/06/07 04:53
若一个数x是平方数,则d(x)为平方数
所以就是要考虑有多少对i*j为平方数
我们假设,i=p*k^2,那么,j=p*q^2时,i*j为平方数(p不含平方因子,k,q为正整数)
所以,我们对于一个i=p*k^2,对应的j就有[√m/p]种
我们考虑快速求p,这样对于所有k,i=p*k^2的答案都是一样的,要么是1或-1
采用线性筛法,对于一个合法的p,我们可以筛掉p*k^2 ,这样时间复杂度是就是线性的
#include<stdio.h>#include<math.h>#define N 10000000#define L long longbool vis[10000020]={0};L n,m,ans=0;int main(){scanf("%lld%lld",&n,&m);for(int i=1;i<=n;++i)if(!vis[i]){int c=0;for(int j=1;i*j*j<=n;++j) vis[i*j*j]=1,++c;ans+=((int)sqrt(1.*m/i))&1?-c:c;}printf("%lld\n",ans);}
阅读全文
1 0
- 【JZOJ4782】Math
- Jzoj4782 Math
- NOIP提高组【JZOJ4782】Math
- 【jzoj4782】【Math】【线性筛法】
- 【JZOJ4782】【NOIP2016提高A组模拟9.15】Math
- Math
- math
- Math
- Math
- Math
- Math
- math
- Math
- math
- Math
- Math
- Math
- Math
- 输出信息
- Banner+1PullToRefreshScrollView
- c#调用tensorflow的例子
- UCosIII在Cortex-M3核单片机上IAP跳转APP时引起HardFault错误原因分析
- jndi(java命名和目录接口)到底有什么用?
- Jzoj4782 Math
- 浏览器渲染的过程
- ubantu之gcc vim的安装
- Web Scraping with Python: 使用 Python 爬 GitHub Star 数
- 执行nginx -s reload报错 [alert] kill(****, ***) failed
- centOS6.8编译安装Apache 2.2+Mysql5.5+Php5.3
- matlab过期问题的解决
- 创建图形用户界面
- JavaWeb框架-Hibernate-1-我来了,我看见,我征服!