Gym - 101981J The 2018 ICPC Asia Nanjing Regional Contest J.Prime Game 计数
题意: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这个素数的贡献。
#include<bits/stdc++.h>
using namespace std;
#define mem(a,i) memset(a,i,sizeof(a))
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define pb push_back
typedef long long ll;
const int maxn=1e6+;
int a[maxn],n;
bool vis[];
int prim[];
vector<int> vec[maxn];
int cnt;
void init() {
mem(vis,);
rep(i,,maxn-) vec[i].clear();
cnt=;
rep(i,,) {
if(!vis[i]) {
prim[++cnt]=i;
for(int j=i*;j<;j+=i) {
vis[j]=;
}
}
}
}
int main() {
init();
scanf("%d",&n);
rep(i,,n) {
scanf("%d",&a[i]);
int temp=a[i];
rep(j,,cnt) {
if(temp<prim[j]) break;
if(temp%prim[j]==) {
vec[prim[j]].pb(i);
while(temp%prim[j]==) temp/=prim[j];
}
}
if(temp!=) vec[temp].pb(i);
}
ll ans=;
rep(i,,maxn-) {
ll res=1ll*n*(n+)/;
int len=vec[i].size();
if(len==) continue;
rep(j,,len-) {
if(j==) res-=1ll*(vec[i][j]-)*(vec[i][j])/;
if(j==len-) res-=1ll*(n-vec[i][j])*(n-vec[i][j]+)/;
if(j+<len) res-=1ll*(vec[i][j+]-vec[i][j])*(vec[i][j+]-vec[i][j]-)/;
}
ans+=res;
}
printf("%lld\n",ans);
return ;
}
Gym - 101981J The 2018 ICPC Asia Nanjing Regional Contest J.Prime Game 计数的更多相关文章
- Gym - 101981K The 2018 ICPC Asia Nanjing Regional Contest K.Kangaroo Puzzle 暴力或随机
题面 题意:给你1个20*20的格子图,有的是障碍有的是怪,你可以每次指定上下左右的方向,然后所有怪都会向那个方向走, 如果2个怪撞上了,就融合在一起,让你给不超过5w步,让所有怪都融合 题解:我们可 ...
- Gym - 101981M The 2018 ICPC Asia Nanjing Regional Contest M.Mediocre String Problem Manacher+扩增KMP
题面 题意:给你2个串(长度1e6),在第一个串里找“s1s2s3”,第二个串里找“s4”,拼接后,是一个回文串,求方案数 题解:知道s1和s4回文,s2和s3回文,所以我们枚举s1的右端点,s1的长 ...
- Gym - 101981G The 2018 ICPC Asia Nanjing Regional Contest G.Pyramid 找规律
题面 题意:数一个n阶三角形中,有多少个全等三角形,n<=1e9 题解:拿到题想找规律,手画开始一直数漏....,最后还是打了个表 (打表就是随便定个点为(0,0),然后(2,0),(4,0), ...
- Gym - 101981I The 2018 ICPC Asia Nanjing Regional Contest I.Magic Potion 最大流
题面 题意:n个英雄,m个怪兽,第i个英雄可以打第i个集合里的一个怪兽,一个怪兽可以在多个集合里,有k瓶药水,每个英雄最多喝一次,可以多打一只怪兽,求最多打多少只 n,m,k<=500 题解:显 ...
- Gym - 101981D The 2018 ICPC Asia Nanjing Regional Contest D.Country Meow 最小球覆盖
题面 题意:给你100个三维空间里的点,让你求一个点,使得他到所有点距离最大的值最小,也就是让你找一个最小的球覆盖掉这n个点 题解:红书模板题,这题也因为数据小,精度也不高,所以也可以用随机算法,模拟 ...
- Gym - 101981A The 2018 ICPC Asia Nanjing Regional Contest A.Adrien and Austin 简单博弈
题面 题意:一堆有n个石子,编号从1⋯N排成一列,两个人Adrien 和Austin玩游戏,每次可以取1⋯K个连续编号的石子,Adrien先手,谁不能取了则输 题解:k==1时,显然和n奇偶相关,当k ...
- 2018 ICPC Asia Jakarta Regional Contest
题目传送门 题号 A B C D E F G H I J K L 状态 Ο . . Ο . . Ø Ø Ø Ø . Ο Ο:当场 Ø:已补 . : 待补 A. Edit Distance Thin ...
- 2018 ICPC Asia Singapore Regional A. Largest Triangle (计算几何)
题目链接:Kattis - largesttriangle Description Given \(N\) points on a \(2\)-dimensional space, determine ...
- 2019 ICPC Asia Nanjing Regional
2019 ICPC Asia Nanjing Regional A - Hard Problem 计蒜客 - 42395 若 n = 10,可以先取:6,7,8,9,10.然后随便从1,2,3,4,5 ...
随机推荐
- utf-8与unicode是什么关系
简单来说: Unicode is a charset. ------Unicode 他就是一个字符集 UTF-8 is encoding style. --------UTF-8他就是一种编码方式, ...
- AjaxDemo
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- nodejs 文件操作模块 fs
const fs=require("fs"); //文件操作 //创建目录 ./ 代表当前目录 ../ 代表上级目录fs.mkdir('./test',function(err){ ...
- 使用form标签时注意事项
今天写程序的时候,使用了一个form:select标签,然后系统一直报错 原因找了好久也没找到 后来咨询得知, 在使用form:标签的时候 前后的form标签要写成<form:form> ...
- webAPP 原生APP 对比
Web App即是一种框架型APP开发模式(HTML5 APP 框架开发模式),该开发具有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架 ...
- Unity jointmoto
jointmoto是模拟电机的,他的参数包括了最高车速和最大扭矩 扭矩总是正数,而目标车速决定了方向
- 11.best fields策略(dis_max参数设置)
主要知识点 常规multi-field搜索结果分析 dis_max参数设置 一.为帖子数据增加content字段 POST /forum/article/_bulk { "u ...
- 【模板】RMQ问题 ST表
洛谷3865 #include<cstdio> #include<algorithm> #include<cmath> using namespace std; ; ...
- POJ 1821 Fence
Fence Time Limit: 1000ms Memory Limit: 30000KB This problem will be judged on PKU. Original ID: 1821 ...
- RestEasy 用户指南---第11章 @FormParam
转载说明出处:http://blog.csdn.net/nndtdx/article/details/6870391 原文地址 http://docs.jboss.org/resteasy/docs/ ...