博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gym - 101981J The 2018 ICPC Asia Nanjing Regional Contest J.Prime Game 计数
阅读量:5943 次
发布时间:2019-06-19

本文共 1054 字,大约阅读时间需要 3 分钟。

题意:1e6的数组(1<a[i]<1e6),     mul (l,r) =l × (l+1) ×...× r,  fac(l,r) 代表 mul(l,r) 中不同素因子的个数,求sigma(i=1 to n) sigma(j=i to n) fac(i,j)

题解:计数套路题,算贡献,直接算有多少区间包含某一个素数的倍数

记录一下所有2的倍数的位置,3的倍数的位置,

    之后算有多少个区间包含2倍数的位置,这个就是2这个素数的倍数的贡献,

    然后算有多少个区间包含3这个素数的倍数的位置,这个就是3这个素数的贡献。

1 #include
2 using namespace std; 3 #define mem(a,i) memset(a,i,sizeof(a)) 4 #define rep(i,a,b) for(int i=a;i<=b;++i) 5 #define pb push_back 6 typedef long long ll; 7 const int maxn=1e6+5; 8 int a[maxn],n; 9 bool vis[1005];10 int prim[1005];11 vector
vec[maxn];12 int cnt;13 void init() {14 mem(vis,0);15 rep(i,0,maxn-1) vec[i].clear();16 cnt=0;17 rep(i,2,1004) {18 if(!vis[i]) {19 prim[++cnt]=i;20 for(int j=i*2;j<1005;j+=i) {21 vis[j]=1;22 }23 }24 }25 }26 int main() {27 init();28 scanf("%d",&n);29 rep(i,1,n) {30 scanf("%d",&a[i]);31 int temp=a[i];32 rep(j,1,cnt) {33 if(temp

 

转载于:https://www.cnblogs.com/qywhy/p/10102426.html

你可能感兴趣的文章
jQuery的技巧01
查看>>
基于泛型实现的ibatis通用分页查询
查看>>
gopacket 使用
查看>>
AlertDialog对话框
查看>>
我的友情链接
查看>>
linux安全---cacti+ntop监控
查看>>
鸟哥的linux私房菜-shell简单学习-1
查看>>
nagios配置监控的一些思路和工作流程
查看>>
通讯组基本管理任务三
查看>>
赫夫曼编码实现
查看>>
html页面显示div源代码
查看>>
基础复习-算法设计基础 | 复杂度计算
查看>>
debian、ubuntu系统下,常用的下载工具
查看>>
带以太网的MicroPython开发板:TPYBoardv201温湿度上传实例
查看>>
如何解压缩后缀名为zip.001,zip.002等的文件
查看>>
OSGI企业应用开发(十二)OSGI Web应用开发(一)
查看>>
Python 以指定概率获取元素
查看>>
微信公众平台图文教程(二) 群发功能和素材管理
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
Centos 7.5 部署DNS
查看>>