ACM-ICPC 2018 南京赛区网络预赛 - J. Sum (找规律+打表)
题意:\(f(i):i\)能拆分成两个数的乘积,且要求这两个数中各自都没有出现超过1次的质因子。每次给出n,求\(\sum_{i=1}^{n}f(i)\)
分析:\(1 \le n \le 2e7\),每次查询若都\(O(n)\)统计,肯定超时,必须打表。
类似打欧拉函数表的方式,对于数\(d\)以及素数\(p\),\(f(p)=2\);
当\(d|p\)时,若\(d|p^2\),则\(f(d*p^2)=0\);否则\(f(d*p)=f(d)/2\);
当\(d\dagger p\)时,\(f(d*p) = f(d)*2\)
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=2e7+5;
bool vis[maxn];
int prime[maxn];
LL f[maxn];
LL res[maxn];
void init_f(int n){
int cnt=0;
f[1]=1;
for(int i=2;i<n;i++){
if(!vis[i]){
prime[cnt++]=i;
f[i]=2;
}
for(int j=0;j<cnt&&i*prime[j]<n;j++){
vis[i*prime[j]]=1;
if(i%prime[j]==0){
if(i%(prime[j]*prime[j])==0) f[i*prime[j]]= 0;
else f[i*prime[j]]= f[i]/2;
break;
}
else{
f[i*prime[j]]= f[i]*2;
}
}
}
for(int i=1;i<maxn;++i) res[i] = res[i-1]+f[i];
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
init_f(maxn);
int T; scanf("%d",&T);
while(T--){
int n; scanf("%d",&n);
printf("%lld\n",res[n]);
}
return 0;
}
ACM-ICPC 2018 南京赛区网络预赛 - J. Sum (找规律+打表)的更多相关文章
- ACM-ICPC 2018 南京赛区网络预赛 J.sum
A square-free integer is an integer which is indivisible by any square number except 11. For example ...
- ACM-ICPC 2018 南京赛区网络预赛 J.sum(欧拉筛)
题目来源:https://nanti.jisuanke.com/t/A1956 题意:找一个数拆成无平方因子的组合数,然后求前缀和. 解题思路:我们可以把某个数分解质因数,如果某个数可以分解出三个相同 ...
- ACM-ICPC 2018 南京赛区网络预赛 J Sum (思维+打表)
https://nanti.jisuanke.com/t/30999 题意 f(i)表示i能拆分成两个数的乘积,且要求这两个数中各自都没有出现超过1次的质因子的方案数.每次给出n,求∑(n,i=1)f ...
- 线性素数筛 ACM-ICPC 2018 南京赛区网络预赛 J Sum
https://www.jisuanke.com/contest/1555?view=challenges 题意: 题解:写完都没发现是个积性函数233 想法就是对x分解质因数,f(x)就是2^k,其 ...
- ACM-ICPC 2018 南京赛区网络预赛 J sum (找一个数拆成两个无平方因子的组合数)
题目大意:就是找一个数拆成两个无平方因子的组合数,然后求个前缀和 ; 分析:运用筛法的思想 , 因为有序对是由两个合法的数字组成的,所以只要保证第一个数合法,第二个数也合法就行,找出合法的第二个数 ...
- 计蒜客 30999.Sum-筛无平方因数的数 (ACM-ICPC 2018 南京赛区网络预赛 J)
J. Sum 26.87% 1000ms 512000K A square-free integer is an integer which is indivisible by any squar ...
- ACM-ICPC 2018 南京赛区网络预赛 J题Sum(线性筛素数)
题目链接:https://nanti.jisuanke.com/t/30999 参考自博客:https://kuangbin.github.io/2018/09/01/2018-ACM-ICPC-Na ...
- 【ACM-ICPC 2018 南京赛区网络预赛 J】Sum
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 线性筛求出每个数的最小质因子x for 从1-n 对于i,它的最小质因子为x 考虑i=ab 如果i能被x^3整除 那么这x怎么分配给 ...
- ACM-ICPC 2018 南京赛区网络预赛 E题
ACM-ICPC 2018 南京赛区网络预赛 E题 题目链接: https://nanti.jisuanke.com/t/30994 Dlsj is competing in a contest wi ...
随机推荐
- angularJs 多文件动态上传(删除其中一个文件的时候,要么file没被删除,要么删除了之后,点击事件失效)
<div cacModule.controller('CacScriptEditCtrl', CacScriptEditCtrl); CacScriptEditCtrl.$inject = [' ...
- radio 标签状态改变时 触发事件
<html> <head> <script src="jquery1.7.2.js"></script> </head> ...
- Python UnboundLocalError 异常
如下,当我们在函数中对全局变量重新赋值的时候就会出现 UnboundLocalError 异常,虽然 num 这个变量在外部已经被定义成全局变量,但是如果在函数中进行重新赋值操作,python 会自动 ...
- 在静态工具类中需要注入mapper
在xml中 <bean id="messageUtil" class="org.ldd.ssm.hangyu.utils.MessageUtil" ini ...
- java如何遍历Enumeration
public class TestEnumeration{public static void main(String[] args){ Vector v = new Vector(); v.addE ...
- [Jenkins] Manage Jenkins from Web Interface
URL 说明 [jenkins_url]/safeRestart This will restart Jenkins after the current builds have completed. ...
- 160329(二)、web.xml配置详解
1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...
- Tomcat----->tomcat配置虚拟主机(搭建网站)mac
1.首先在server.xml中添加HOST <Host name="www.snowing.com" appBase="/Users/snowing/Downlo ...
- TCP粘包/拆包 ByteBuf和channel 如果没有Netty? 传统的多线程服务器,这个也是Apache处理请求的模式
通俗地讲,Netty 能做什么? - 知乎 https://www.zhihu.com/question/24322387 谢邀.netty是一套在java NIO的基础上封装的便于用户开发网络应用程 ...
- 干货 | 蚂蚁金服是如何实现经典服务化架构往 Service Mesh 方向的演进的?
干货 | 蚂蚁金服是如何实现经典服务化架构往 Service Mesh 方向的演进的? https://www.sohu.com/a/235575064_99940985 干货 | 蚂蚁金服是如何实现 ...