3944: Sum

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 4930  Solved: 1313
[Submit][Status][Discuss]

Description

 

Input

一共T+1行
第1行为数据组数T(T<=10)
第2~T+1行每行一个非负整数N,代表一组询问
 

Output

一共T行,每行两个用空格分隔的数ans1,ans2
 

Sample Input

6
1
2
8
13
30
2333

Sample Output

1 1
2 0
22 -2
58 -3
278 -3
1655470 2
 
/*
就相当于111112222222333333333每个数都有相同的一坨,然后只算出一坨的第一个数,乘个他的次数,直接跳到下一坨
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#define maxn 5000005
#define N 5000000
using namespace std;
int p[maxn],mu[maxn],cnt;
long long phi[maxn];
bool vis[maxn];
void prepare(){
memset(vis,,sizeof(vis));
phi[]=;mu[]=;
for(int i=;i<=N;i++){
if(!vis[i])p[++cnt]=i,phi[i]=i-,mu[i]=-;
for(int j=;j<=cnt&&i*p[j]<=N;j++){
vis[i*p[j]]=;
if(i%p[j]==){
phi[i*p[j]]=phi[i]*p[j];
mu[p[j]*i]=;break;
}
phi[i*p[j]]=phi[i]*phi[p[j]];
mu[i*p[j]]=-mu[i];
}
}
for(int i=;i<=N;i++)phi[i]+=phi[i-],mu[i]+=mu[i-];
}
map<long long,long long>lst_phi;
map<long long,int>lst_mu;
long long sum_phi(long long n){
if(n<=N)return phi[n];
if(lst_phi[n]!=)return lst_phi[n];
long long res=n*(n+)/;
for(long long i=,nxt;i<=n;i=nxt+){
nxt=n/(n/i);
res-=sum_phi(n/i)*(nxt-i+);
}
return lst_phi[n]=res;
}
int sum_mu(long long n){
if(n<=N)return mu[n];
if(lst_mu[n]!=)return lst_mu[n];
int res=;
for(long long i=,nxt;i<=n;i=nxt+){
nxt=n/(n/i);
res-=sum_mu(n/i)*(nxt-i+);
}
return lst_mu[n]=res;
}
int main(){
freopen("Cola.txt","r",stdin);
prepare();
int Q;scanf("%d",&Q);
while(Q--){
int n;scanf("%d",&n);
cout<<sum_phi(n)<<' '<<sum_mu(n)<<endl;
}
}

bzoj 3944: Sum(杜教筛)的更多相关文章

  1. bzoj 3944 Sum —— 杜教筛

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3944 杜教筛入门题! 看博客:https://www.cnblogs.com/zjp-sha ...

  2. BZOJ 3944: Sum [杜教筛]

    3944: Sum 贴模板 总结见学习笔记(现在还没写23333) #include <iostream> #include <cstdio> #include <cst ...

  3. 3944: Sum[杜教筛]

    3944: Sum Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3471  Solved: 946[Submit][Status][Discuss] ...

  4. [BZOJ3944]Sum(杜教筛)

    3944: Sum Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 6201  Solved: 1606[Submit][Status][Discuss ...

  5. 洛谷P4213 Sum(杜教筛)

    题目描述 给定一个正整数N(N\le2^{31}-1)N(N≤231−1) 求ans_1=\sum_{i=1}^n\phi(i),ans_2=\sum_{i=1}^n \mu(i)ans1​=∑i=1 ...

  6. [bzoj3944] sum [杜教筛模板]

    题面: 传送门 就是让你求$ \varphi\left(i\right) $以及$ \mu\left(i\right) $的前缀和 思路: 就是杜教筛的模板 我们把套路公式拿出来: $ g\left( ...

  7. bzoj3944: Sum 杜教筛板子题

    板子题(卡常) 也可能是用map太慢了 /************************************************************** Problem: 3944 Us ...

  8. ●杜教筛入门(BZOJ 3944 Sum)

    入门杜教筛啦. http://blog.csdn.net/skywalkert/article/details/50500009(好文!) 可以在$O(N^{\frac{2}{3}})或O(N^{\f ...

  9. bzoj 3944: Sum【莫比乌斯函数+欧拉函数+杜教筛】

    一道杜教筛的板子题. 两个都是积性函数,所以做法是一样的.以mu为例,设\( f(n)=\sum_{d|n}\mu(d) g(n)=\sum_{i=1}^{n}f(i) s(n)=\sum_{i=1} ...

随机推荐

  1. zookeeper+dubbo问题

    1.java.lang.IllegalStateException: Context namespace element 'component-scan' and its parser class [ ...

  2. jQuery 对表单、表格的操作及更多应用-简略笔记

    [jQuery 对表单.表格的操作及更多应用] jquery对表单及表格的操作是实际应用中相当广泛. 对于表单的操作,可以实现 (1)获取和失去焦点改变样式: (2)在多行文本框中可以实现网站评论框的 ...

  3. 六 Django框架,models.py模块,数据库操作——链表结构,一对多、一对一、多对多

    链表操作 链表,就是一张表的外键字段,连接另外一张表的主键字段 一对多 models.ForeignKey()外键字段一对多,值是要外键的表类 from __future__ import unico ...

  4. flex 和bison的安装和使用

    1.在ubutu上安装 yacc的命令: sudo apt-get install flex bison flex:词法分析器 flex是一个词法分析器.用来将一个.l文件生成一个.c程序文件.即生成 ...

  5. Hibernate - POJO 类和数据库的映射文件*.hbm.xml

    POJO 类和关系数据库之间的映射可以用一个XML文档来定义. 通过 POJO 类的数据库映射文件,Hibernate可以理解持久化类和数据表之间的对应关系,也可以理解持久化类属性与数据库表列之间的对 ...

  6. Java中的参数传值方式

    本文转载自 https://blog.csdn.net/SEU_Calvin/article/details/70089977 1.  你觉得下面程序会输出什么 public static void  ...

  7. 【leetcode刷题笔记】Palindrome Partitioning

    Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...

  8. mysql调优参考笔记

    之前一位童鞋发的: 5版邮件,在用户量很大的情况下,如果做了分布式,如果在后端mysql上执行:   mysql> show global status like 'Thread%';   Th ...

  9. LOJ2305 「NOI2017」游戏

    「NOI2017」游戏 题目背景 狂野飙车是小 L 最喜欢的游戏.与其他业余玩家不同的是,小 L 在玩游戏之余,还精于研究游戏的设计,因此他有着与众不同的游戏策略. 题目描述 小 L 计划进行$n$场 ...

  10. BZOJ2548:[CTSC2002]灭鼠行动

    我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...