[BZOJ3944] Sum

题目描述:

solution

裸的杜教筛。

唯一的坑点在于卡常。

似乎ans1和ans2都杜教筛超时了。

然而用杜教筛求出ans2,并用求出ans1不超时?!?。

​
​
​
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN=3e6+50;
inline int read()
{int f=1,x=0; char c=getchar();while (c<'0'||c>'9') { if (c=='-') f=-1; c=getchar(); }while (c>='0'&&c<='9') { x=(x<<3)+(x<<1)+(c^48); c=getchar(); }return x*f;
}
map<int,int> Mu;
int prime[MAXN],vis[MAXN],n,pnum=0,inv2,inv6,mu[MAXN];
inline void init()
{mu[1]=1;for(int i=2;i<MAXN;i++) {if(!vis[i]) prime[++pnum]=i,mu[i]=-1;for(int t,j=1;j<=pnum&&i*prime[j]<MAXN;j++) {vis[t=i*prime[j]]=1;if (!(i%prime[j])) {mu[t]=0;break;}mu[t]=-mu[i];}}for(int i=1;i<MAXN;i++) mu[i]=mu[i-1]+mu[i];
}
inline ll get_mu(ll n)
{if (n<MAXN) return mu[n];if (Mu[n]) return Mu[n];ll T=2,res=1;while(T<=n){ll pre=T;T=n/(n/T);res=res-1ll*(T-pre+1)*get_mu(n/T);T++;}return Mu[n]=res;
}inline ll get_phi(ll n)
{ll ans=0;for (ll T=1,pre;T<=n;T=pre+1){pre=n/(n/T);ans+=1ll*(n/T)*(n/T+1)/2*(1ll*get_mu(pre)-1ll*get_mu(T-1));}return ans;
}int main()
{int t=read();init();while(t--) {int n=read();printf("%lld %lld\n",get_phi(n),get_mu(n));}return 0;
}​​​

[BZOJ3944] Sum相关推荐

  1. BZOJ3944: Sum

    BZOJ3944: Sum Description Input 一共T+1行 第1行为数据组数T(T<=10) 第2~T+1行每行一个非负整数N,代表一组询问 Output 一共T行,每行两个用 ...

  2. bzoj3944: Sum//杜教筛

    bzoj3944: Sum 前几天的blog,没写完,现在补上吧- 题意 求莫比乌斯函数和欧拉函数的前缀和.N<=2^31-1.T(<=10)组询问. 题解 杜教筛. 然而这篇博客不是写题 ...

  3. bzoj3944 Sum 杜教筛

    模板题,注意杜教筛化式子的技巧: 1.构造求和函数 2.利用积性函数约数性质 3.做差算出单项 4.约数倍数转化贡献 5.分块求商 码: #include<iostream> #inclu ...

  4. BZOJ3944 Sum 杜教筛

    看完题一副不可做的样子 默默点开了题解 发现是杜教筛 就花了半天学习了一下 先说下杜教筛 可以在优于线性的复杂度内求出积性函数的前缀和 下求 ∑ni=1f(i) \sum_{i=1}^nf(i) 令 ...

  5. Min_25筛学习Tip+链接

    前言 机房里差不多都会Min_25筛了,我也赶紧补一波坑v_v 参考: txc的Min_25筛学习笔记 yx的Min_25筛学习笔记 由于前面两位dalao的标题都是笔记,所以我这里就是小记了,因为这 ...

  6. PKUSC2018训练日程(4.18~5.30)

    (总计:共66题) 4.18~4.25:19题 4.26~5.2:17题 5.3~5.9: 6题 5.10~5.16: 6题 5.17~5.23: 9题 5.24~5.30: 9题 4.18 [BZO ...

  7. 2019.5.summary

    2019.5.1 CF C. Prefix Sum Primes 感觉CF就是训练妳如何养成对题目强大的YY能力的QAQ 我们构造 如果只有一种,没辙,只能这样放 否则先放一个2,再放一个1 接下来把 ...

  8. 数论函数 - 莫比乌斯函数与莫比乌斯反演 - 基础杜教筛

    原文链接http://www.cnblogs.com/zhouzhendong/p/8627380.html 省选后发现我数学好差.于是先从数论开始学习. 如果发现本文有任何错误,欢迎留言指正. 本文 ...

  9. go build 编译报错 missing go.sum entry for module providing package

    go build 编译报错 missing go.sum entry for module providing package 解决方法 // 移除未使用的依赖 go mod tidy 再次编译,就可 ...

最新文章

  1. c语言矩阵的乘积,c语言矩阵相乘
  2. C#动态调用webservice
  3. MySQL 数据库 练习题
  4. hdu 3033(分组背包)
  5. element-ui如何进行调试
  6. 算法高级(1)-概述
  7. debian下使用dpkg来安装/卸载deb包 (转载)
  8. java中线程的优先级别
  9. mysql 怎么导入sql文件_如何在MySQL中使用命令行导入SQL文件?
  10. Linux-tomcat版本升级
  11. GreenSock (TweenMax) 极简入门指南
  12. 央行发布洗钱风险自评估指引 12月31日前更新制度
  13. C#实现百度地图附近搜索调用JavaScript函数
  14. 看待FIL能否成功不应该只关注它的币价,而是IPFS能否完全落地应用……
  15. Mac下使用Mounty挂载NTFS出现了文件不能拷贝的解决办法
  16. 唐朝一体机屏幕显示变红
  17. imToken 2.7.2,你的 Eth2「入场券」待领取
  18. Java 之父:找Bug最浪费时间,现在不是开源的黄金时代
  19. ps界面为啥突然变大了_PhotoShop这么卡未必赖电脑!几步帮你解决PS卡顿问题
  20. vue使用wx-open-launch-weapp

热门文章

  1. 并不是每个女生都能穿出这种效果......
  2. 过了双十一之后的你。。| 今日最佳
  3. 如果每一种语言都对应一种女生,你会喜欢哪一个?
  4. Java开发面试高频考点学习笔记(每日更新)
  5. linux查看mq是否启动的命令,rocketmq查看命令
  6. tableau三轴合并_《Tableau数据可视化实战》——1.12节合并不同数据源-阿里云开发者社区...
  7. python choice添加下拉框_自定义Django Form中choicefield下拉菜单选取数据库内容实例...
  8. 神舟笔记本电源管理软件_笔记本电脑长期不用充不上电了?原来问题就出在这儿...
  9. cascade down_Cascaded CNN 方法寻找人脸关键点
  10. 递归函数斐波那契数列python_使用Python函数递归实现斐波那契数列时为什么运行速度很慢?...