BZOJ 1968 [Ahoi2005]COMMON 约数研究
1968: [Ahoi2005]COMMON 约数研究
Description
Input
Output
Sample Input
Sample Output
这一定是一道水题,当时因为这是练习积性函数的“好机会”,结果发现自己实在想得太复杂。0 < N < 1000000,因数不会超过这个界限,那么跑一遍就完了。代码也不用挂了。(52ms)
但我发现,也可以欧拉筛。(288 ms)
当然,还可使用区间乱跳,O(1)算出n div i为一定值的区间,而这种区间是O(sqrt(n))的。(0 ms)
1 /************************************************************** 2 Problem: 1968 3 User: Doggu 4 Language: C++ 5 Result: Accepted 6 Time:288 ms 7 Memory:13516 kb 8 ****************************************************************/ 9 10 #include <cstdio> 11 const int SIZE= 1000000; 12 int prime[SIZE], pri, n; 13 bool vis[SIZE+10]; 14 long long ans, tao[SIZE+10]; 15 void EULER(int upper_bound) { 16 tao[1]=1; 17 for( long long i = 2; i <= upper_bound; i++ ) { 18 if(!vis[i]) { 19 prime[++pri]=i; 20 tao[i]=2; 21 } 22 for( int t = 1; t <= pri; t++ ) { 23 long long j = i*prime[t]; 24 if(j>upper_bound) break; 25 vis[j]=1; 26 tao[j]=tao[i]*tao[prime[t]]; 27 if(i%prime[t]==0) { 28 long long a = i,tot=0; 29 while(a%prime[t]==0) a/=prime[t],tot++; 30 tao[j]=tao[a]*(tot+2); 31 break; 32 } 33 } 34 } 35 } 36 int main() { 37 scanf("%d",&n); 38 EULER(n+10); 39 for( int i = 1; i <= n; i++ ) ans+=tao[i]; 40 printf("%lld\n",ans); 41 return 0; 42 }
EULER
转载于:https://www.cnblogs.com/Doggu/p/bzoj1968.html
BZOJ 1968 [Ahoi2005]COMMON 约数研究相关推荐
- BZOJ 1968: [Ahoi2005]COMMON 约数研究 水题
1968: [Ahoi2005]COMMON 约数研究 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeO ...
- bzoj 1968: [Ahoi2005]COMMON 约数研究【枚举】
枚举约数,加上有这个约数的数个数 #include<iostream> #include<cstdio> using namespace std; const int N=10 ...
- 1968: [Ahoi2005]COMMON 约数研究
1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 3354 Solved: 2289 [Submi ...
- bz1968 1968: [Ahoi2005]COMMON 约数研究
1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1412 Solved: 1072 [Submi ...
- BZOJ-1968: [Ahoi2005]COMMON 约数研究 (思想)
1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 2866 Solved: 2135 [Submi ...
- [AHOI2005]COMMON 约数研究
https://www.luogu.org/problemnew/show/P1403 https://www.lydsy.com/JudgeOnline/problem.php?id=1968 题解 ...
- BZOJ1968: [Ahoi2005]COMMON 约数研究
[传送门:BZOJ1968] 简要题意: 给出n,求出1的约数个数+2的约数个数+...+n的约数个数 题解: 乍一眼还挺容易理解,但是看数据范围,懵逼 好吧,说实话,我是看数据规律才知道怎么做的 ...
- [BZOJ1968][AHOI2005]COMMON约数研究 数学
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1968 直接计算每个因子的贡献就可以了. $Ans=\sum_{i=1}^n[\frac{n ...
- bzoj1968【AHOI2005】COMMON 约数研究
1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1492 Solved: 1139 [ Su ...
最新文章
- 第三方登录 (faceBook )
- 正则表达式调用“或”变量
- SqlServer2005高效分页sql查询语句汇总
- 基于matlab/simulink的PMSM直接转矩控制和bangbang控制
- ACM公选课第八节DP基础3 2020.4.23-5.10补
- 【uniapp】swiper 自定义轮播图指示点
- React总结篇之六_React高阶组件
- NUMTRYE - Number Theory (Easy)
- t-sql中的事务控制及错误处理
- python 匿名函数 day15
- 中职计算机基础知识总结,中职计算机基础知识整理
- python脚本多文件搜索查询字符串关键字
- 浅谈ARM Cortex-M0
- 修改计算机照片格式怎么修,电脑上如何修改照片文件大小?2种免费方法简单解决...
- Base64在线转换工具
- layui.laydate默认当前时间时分秒
- 百度360腾讯竞购搜狗
- 优思学院|准时化生产(JIT)是什么?
- 晶体管发明往事:误打误撞,反目成仇,共享诺贝尔奖
- 算法之地推算法(逆推法)
热门文章
- K8S完整部署项目实战案例
- Python Django 配置admin后台管理类代码示例
- vue定义一个变量并显示
- 请解释一下Java多线程回调是什么意思?
- nginx lua示例
- JMM主内存和工作内存运行流程图
- Random类实例--猜数字游戏
- spring boot整合mybatis+通用mapper+pagehelper分页插件
- oracle 修改聚簇因子,Oracle 基础篇 --- 聚簇因子(clustering_factor)
- edittext 选中焦点在最后_安卓开发中EditText的焦点改变处理(获取焦点和失去焦点交互变化)...