hdu 2824 线性筛素数求欧拉函数+前缀和
来源:互联网 发布:如何开展网络推广工作 编辑:程序博客网 时间:2024/06/02 05:16
因为只是区间查询,没有修改,所以只需要提前求出前缀和即可,本题难点在于数据量大导致数组用起来比较紧张,所以要重复使用顶用过的数组
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#define MAX 3000001using namespace std;int p[1000000],pt;long long phi[MAX];bool m[MAX];int N = 3000001;void init (){ memset ( m , 0 , sizeof ( m ) ); pt = 0; phi[1] = 1; int k; for ( int i = 2 ; i < N ; i++ ) { if (!m[i]) p[pt++]=i,phi[i]=i-1,m[i]=1; for ( int j=0;j<pt&&(k=i*p[j])<N;j++) { m[k] = 1; if ( i%p[j]==0 ) { phi[k]=phi[i]*p[j]; } else phi[k]=phi[i]*(p[j]-1); } } } int main ( ){ init (); for ( int i = 2 ; i < N ; i++ ) phi[i] = phi[i]+phi[i-1]; int left , right; while ( ~scanf ( "%d%d" , &left , &right ) ) printf ( "%I64d\n" , phi[right]-phi[left-1] ); return 0;}
0 0
- hdu 2824 线性筛素数求欧拉函数+前缀和
- A%BProblem——线性筛素数与前缀和
- hdu 6053TrickGCD(线性筛+莫比乌斯函数+前缀和)
- 线性求欧拉函数值和筛选素数
- hdu 5317 (普通素数筛的应用)+(前缀和预处理)
- [BZOJ 2818] Gcd 线性筛+欧拉函数前缀和
- POJ 2739 Sum of Consecutive Prime Numbers(线性素数筛+前缀和)
- HDU 4548 美素数 (素数打表+前缀和)
- 线性筛素数 线性筛欧拉函数
- 线性时间内筛素数和欧拉函数
- 欧拉筛——线性筛素数和欧拉函数
- CodeForce 546D 素数筛+前缀和
- 多校第三场 1002 hdu 5317 RGCDQ (筛素数+前缀和)
- hdu 5317 RGCDQ(素数筛选法+前缀和)
- 线性筛选素数和线性筛选欧拉函数【bzoj2190]
- 线性筛求莫比乌斯反演函数+分块+前缀和
- 线性筛素数方法(Prime2函数)
- 线性筛素数and欧拉函数
- [IOS]IOS8自定义输入法教程:如何创建第三方输入法
- Java中的AutoBoxing (Integer对-128~127之间数值的特殊处理)
- Linux显示PCI设备
- 行为模式之Template(模板模式)
- linux设备驱动程序的makefile文件例子
- hdu 2824 线性筛素数求欧拉函数+前缀和
- 【ZooKeeper Notes 5】单机启动多个ZooKeeper实例注意点
- Linux显示USB设备
- 应用QQ2440(s3c2440)ARM开发板驱动MMA7455加速度计的linux设备驱动编写
- spi子系统分析续
- 几个简单的jquery知识点练习
- MySQL执行Select语句将结果导出到文件的方法
- Q5.1 Set Bits
- 关于c# TCP SOCKET 通信