2018ICPC南京站Problem J. Prime Game
2024-09-06 17:17:53
题意:
对于所有数字分解质因子,如果某个质因子在这个区间出现,则贡献为1,求所有质因子对所有区间做的贡献。
解析:
考虑如果所有全部区间都有这个质因子则这个质因子的贡献是n*(n+1)/2,对于任意因子,他的贡献等于区间个数减去他没有出现的区间个数,一个因子没有出现的区间就是出现的相邻两个位置之间。减去即可。
代码:
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <vector>
#include <cstdio>
#include <queue>
#include <cmath>
#include <map>
#include <set> using namespace std; typedef long long ll; const int maxn=1e6+; int prime[maxn];
ll a[maxn]; int pr[maxn];
void getprime(){
memset(pr,,sizeof(pr));
for(int i=;i<=maxn;i++){
if(!pr[i])pr[++pr[]]=i;
for(int j=;j<=pr[]&&pr[j]<=maxn/i;j++){
pr[pr[j]*i]=;
if(i%pr[j]==)break;
}
}
} int main(){
int n;
scanf("%d",&n);
memset(prime,,sizeof(prime));
for(int i=;i<=n;i++){
scanf("%lld",&a[i]);
}
getprime();
ll num=;
for(int i=;i<=n;i++){ for(int j=;pr[j]<=a[i]/pr[j];j++){
if(a[i]%pr[j]==){
while(a[i]%pr[j]==){
a[i]=a[i]/pr[j];
}
ll x=i-prime[pr[j]]-; num+=(x+)*x/; prime[pr[j]]=i;
}
}
if(a[i]!=){
ll x=i-prime[a[i]]-; num+=(x+)*x/; prime[a[i]]=i;
}
}
ll ans=n;
ans=ans*(ans+)/;
ll nn=;
for(int i=;i<maxn;i++){
if(prime[i]){
nn++;
ll x=n-prime[i]; num+=(x+)*x/; prime[i]=n+;
}
}
//printf("%lld....\n",nn);
ans=ans*nn;
printf("%lld\n",ans-num);
return ;
}
最新文章
- linux(centos)用户与权限
- iOS 消息转发
- java数据类型图:
- 在浏览器中打不开Oracle 11gR2的企业管理器页面
- linux下的gdb调试工具--内存调试
- c++,extern “c”
- Dvtm -- 平铺式终端
- Oracle JDBC版本区别(转)
- cocoaPods的安装使用 以及 Carthage
- pthread创建线程的简单演示
- 渐进式Web应用(PWA)入门教程(下)
- springboot~环境搭建与Helloworld
- struts2框架学习之第一天
- 浅谈python函数签名
- DataGuard---->;物理StandBy的角色切换之switchover
- JSON parse error: Cannot deserialize instance of `int` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc
- JQ 文本超出
- C# 生成月份及天选择列表,方便做下拉框联动
- Spring: 读取 .properties 文件地址,json转java对象,el使用java类方法相关 (十三)
- IOS开发基础Object-C(12)—单例模式
热门文章
- Android获取CPU编号
- oo第三次作业--jml
- Blazor client-side + webapi (.net core 3.1) 添加jwt验证流程(非host)第三章 客户端存储及验证
- C#设计模式学习笔记:(6)适配器模式
- 通过sql的stuff 把一列几行的记录拼接在一行一个字段
- 【一起刷LeetCode】整数反转
- java new一个对象的过程中发生了什么?
- 有关css编写文字动态下划线
- Windos framework .net 3.5规则失败
- 适合小白的大白话讲解--->;Git与Github的区别