LightOJ
来源:互联网 发布:mac os sierra 卡 编辑:程序博客网 时间:2024/06/16 11:49
这个题 就是欧拉函数类筛法(素数的筛法打表)打表
开始各种 TLE, MLE
后来慢慢优化成 unsigned long long 后,因为输出错误还WA了一次
#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<cmath>#include<set>#include<queue>#include<stack>#include<map>using namespace std;typedef long long ll;typedef unsigned long long ull;const int maxn = 5e6 + 7, INF = 0x7f7f7f7f, mod = 1e9 + 7;int n, m;ull phi[maxn];int prim[maxn];void get_ouler() { memset(phi, 0, sizeof phi); int id = 0; for(int i = 2; i < maxn; ++i) { if(!phi[i]) { phi[i] = (i-1); prim[id++] = i; } for(int j = 0; j < id && i*prim[j] < maxn; ++j) { if(i % prim[j] ) phi[i*prim[j]] = phi[i] * phi[prim[j]]; else { phi[i*prim[j]] = phi[i] * prim[j]; break; } } } phi[1] = 1; for(int i = 2; i < maxn; ++i) { phi[i] = phi[i]*phi[i] + phi[i-1]; }}int main() { get_ouler(); int T; scanf("%d", &T); for(int tt = 1; tt <= T; tt++) { int a, b; scanf("%d%d", &a, &b); printf("Case %d: %llu\n", tt, phi[b] - phi[a-1]); } return 0;}
阅读全文
1 0
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- [LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- 14. Longest Common Prefix
- EEPROM
- 欧拉序
- Android的多渠道打包方式
- 安装虚拟机脚本,及搭建dhcp
- LightOJ
- thinkphp5的SESSION用法
- 2011NOIP普级组第四题--表达式的值(摘自洛谷题解)
- 判断一个整数的奇偶性
- 使用DebugDia定位解决内存泄漏
- Linux命令个人收藏版(持续更新……)
- Blog13@linux延迟、定时任务介绍及临时文件时间更改
- ckplayer 播放器参数详细设置
- vue 2.0中如何使用sortable