题目大意:就是找一个数拆成两个无平方因子的组合数,然后求个前缀和  ;

分析:运用筛法的思想 ,

 因为有序对是由两个合法的数字组成的,所以只要保证第一个数合法,第二个数也合法就行,找出合法的第二个数字的个数就可以用sum前缀和来算,所以L就是第一个数,R=n/L就是最大的第二个数,这里又规定了第二个数从L+1开始,所以sum[R]-sum[L]就是L+1~R合法数字的个数

sum[i] 表示的是小于等于i 的合法因子数 , sum[R]-sum[L] , 就是表示因子大于L,小于等于R,的个数

 L代表第一个数字
乘2是因为比如说枚举到(2,6)的时候也要把(6,2)加进去,而因为L只到sqrt(n),所以(6,2)是不会枚举到的,所以要在这里计算进去,加1就是加上比如(2,2),(3,3)等两边数字相同的情况。
 
#include <cstdio>
#include <cstring>
#include <cmath> const int UP = 2e7 + ;
bool can[UP];
int sum[UP]; void constant() {
memset(can, true, sizeof(can));
int u = sqrt(UP+0.5);
for(int i = ; i <= u; i++) {
int v = i * i;
for(int t = v; t < UP; t += v) can[t] = false;
}
for(int i = ; i < UP; i++) {
sum[i] = sum[i-] + ;
if(!can[i]) sum[i]--;
}
} int main() {
constant();
int T, n;
scanf("%d", &T);
while(T--) {
scanf("%d", &n);
int u = sqrt(n+0.5);
long long ans = ;
for(int L = ; L <= u; L++) {
if(!can[L]) continue;
int R = n / L;
//printf("L = %d sum = %d\n", L, sum[R] - sum[L-1]);
ans += (sum[R] - sum[L]) * + ;
}
printf("%lld\n", ans);
}
return ;
}

ACM-ICPC 2018 南京赛区网络预赛 J sum (找一个数拆成两个无平方因子的组合数)的更多相关文章

  1. ACM-ICPC 2018 南京赛区网络预赛 - J. Sum (找规律+打表)

    题意:\(f(i):i\)能拆分成两个数的乘积,且要求这两个数中各自都没有出现超过1次的质因子.每次给出n,求\(\sum_{i=1}^{n}f(i)\) 分析:\(1 \le n \le 2e7\) ...

  2. ACM-ICPC 2018 南京赛区网络预赛 J.sum

    A square-free integer is an integer which is indivisible by any square number except 11. For example ...

  3. ACM-ICPC 2018 南京赛区网络预赛 J.sum(欧拉筛)

    题目来源:https://nanti.jisuanke.com/t/A1956 题意:找一个数拆成无平方因子的组合数,然后求前缀和. 解题思路:我们可以把某个数分解质因数,如果某个数可以分解出三个相同 ...

  4. ACM-ICPC 2018 南京赛区网络预赛 J Sum (思维+打表)

    https://nanti.jisuanke.com/t/30999 题意 f(i)表示i能拆分成两个数的乘积,且要求这两个数中各自都没有出现超过1次的质因子的方案数.每次给出n,求∑(n,i=1)f ...

  5. 线性素数筛 ACM-ICPC 2018 南京赛区网络预赛 J Sum

    https://www.jisuanke.com/contest/1555?view=challenges 题意: 题解:写完都没发现是个积性函数233 想法就是对x分解质因数,f(x)就是2^k,其 ...

  6. 计蒜客 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 ...

  7. ACM-ICPC 2018 南京赛区网络预赛 J题Sum(线性筛素数)

    题目链接:https://nanti.jisuanke.com/t/30999 参考自博客:https://kuangbin.github.io/2018/09/01/2018-ACM-ICPC-Na ...

  8. 【ACM-ICPC 2018 南京赛区网络预赛 J】Sum

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 线性筛求出每个数的最小质因子x for 从1-n 对于i,它的最小质因子为x 考虑i=ab 如果i能被x^3整除 那么这x怎么分配给 ...

  9. ACM-ICPC 2018 南京赛区网络预赛 E题

    ACM-ICPC 2018 南京赛区网络预赛 E题 题目链接: https://nanti.jisuanke.com/t/30994 Dlsj is competing in a contest wi ...

随机推荐

  1. 【LeetCode】023. Merge k Sorted Lists

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 题 ...

  2. [转]为什么GOF的23种设计模式里面没有MVC?

    GoF (Gang of Four,四人组, <Design Patterns: Elements of Reusable Object-Oriented Software>/<设计 ...

  3. [转]前端网络(性能)监测工具berserkJS

    berserkJS 是基于 Qt (C++跨平台库)开发的前端网络(性能)监测工具. 它的核心功能是通过内置 webkit 收集由页面实际网络请求相关数据. 偏重于页面上线前检测与评估. 页面性能分析 ...

  4. BZOJ2212:[POI2011]Tree Rotation

    浅谈线段树合并:https://www.cnblogs.com/AKMer/p/10251001.html 题目传送门:https://lydsy.com/JudgeOnline/problem.ph ...

  5. bzoj 3998 弦论 —— 后缀自动机

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3998 关于相同子串算一个还是算多个,其实就是看一种状态的 right 集合是否加上 Pare ...

  6. css动画和渐变

    变形: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 元素的变形:transform transform:none | <tra ...

  7. Java Numbers

    通常情况下,当我们与数字打交道,使用原始数据类型,如字节,如int,long,double等 例子: int i = 5000; float gpa = 13.65; byte mask = 0xaf ...

  8. 【机器学习】关联规则分析(一):Apriori

    一.Apriori原理 Apriori是关联分析中较早的一种方法,主要用来挖掘那些频繁项集合,其思想是: 1.如果一个项目集合不是频繁集合,那么任何包含它的项目(超集)也一定不是频繁集. 2.如果一个 ...

  9. 27.【转载】挖洞技巧:如何绕过URL限制

    大家对URL任意跳转都肯定了解,也知道他的危害,这里我就不细说了,过~ 大家遇到的肯定都是很多基于这样的跳转格式:http://www.xxx.xxx/xxx?xxx=http://www.xxx.x ...

  10. linux c段错误分析方法

    from:http://blog.csdn.net/adaptiver/article/details/37656507 一. 段错误原因分析 1 使用非法的指针,包括使用未经初始化及已经释放的指针( ...