[BZOJ3944] Sum
[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相关推荐
- BZOJ3944: Sum
BZOJ3944: Sum Description Input 一共T+1行 第1行为数据组数T(T<=10) 第2~T+1行每行一个非负整数N,代表一组询问 Output 一共T行,每行两个用 ...
- bzoj3944: Sum//杜教筛
bzoj3944: Sum 前几天的blog,没写完,现在补上吧- 题意 求莫比乌斯函数和欧拉函数的前缀和.N<=2^31-1.T(<=10)组询问. 题解 杜教筛. 然而这篇博客不是写题 ...
- bzoj3944 Sum 杜教筛
模板题,注意杜教筛化式子的技巧: 1.构造求和函数 2.利用积性函数约数性质 3.做差算出单项 4.约数倍数转化贡献 5.分块求商 码: #include<iostream> #inclu ...
- BZOJ3944 Sum 杜教筛
看完题一副不可做的样子 默默点开了题解 发现是杜教筛 就花了半天学习了一下 先说下杜教筛 可以在优于线性的复杂度内求出积性函数的前缀和 下求 ∑ni=1f(i) \sum_{i=1}^nf(i) 令 ...
- Min_25筛学习Tip+链接
前言 机房里差不多都会Min_25筛了,我也赶紧补一波坑v_v 参考: txc的Min_25筛学习笔记 yx的Min_25筛学习笔记 由于前面两位dalao的标题都是笔记,所以我这里就是小记了,因为这 ...
- 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 ...
- 2019.5.summary
2019.5.1 CF C. Prefix Sum Primes 感觉CF就是训练妳如何养成对题目强大的YY能力的QAQ 我们构造 如果只有一种,没辙,只能这样放 否则先放一个2,再放一个1 接下来把 ...
- 数论函数 - 莫比乌斯函数与莫比乌斯反演 - 基础杜教筛
原文链接http://www.cnblogs.com/zhouzhendong/p/8627380.html 省选后发现我数学好差.于是先从数论开始学习. 如果发现本文有任何错误,欢迎留言指正. 本文 ...
- go build 编译报错 missing go.sum entry for module providing package
go build 编译报错 missing go.sum entry for module providing package 解决方法 // 移除未使用的依赖 go mod tidy 再次编译,就可 ...
最新文章
- c语言矩阵的乘积,c语言矩阵相乘
- C#动态调用webservice
- MySQL 数据库 练习题
- hdu 3033(分组背包)
- element-ui如何进行调试
- 算法高级(1)-概述
- debian下使用dpkg来安装/卸载deb包 (转载)
- java中线程的优先级别
- mysql 怎么导入sql文件_如何在MySQL中使用命令行导入SQL文件?
- Linux-tomcat版本升级
- GreenSock (TweenMax) 极简入门指南
- 央行发布洗钱风险自评估指引 12月31日前更新制度
- C#实现百度地图附近搜索调用JavaScript函数
- 看待FIL能否成功不应该只关注它的币价,而是IPFS能否完全落地应用……
- Mac下使用Mounty挂载NTFS出现了文件不能拷贝的解决办法
- 唐朝一体机屏幕显示变红
- imToken 2.7.2,你的 Eth2「入场券」待领取
- Java 之父:找Bug最浪费时间,现在不是开源的黄金时代
- ps界面为啥突然变大了_PhotoShop这么卡未必赖电脑!几步帮你解决PS卡顿问题
- vue使用wx-open-launch-weapp
热门文章
- 并不是每个女生都能穿出这种效果......
- 过了双十一之后的你。。| 今日最佳
- 如果每一种语言都对应一种女生,你会喜欢哪一个?
- Java开发面试高频考点学习笔记(每日更新)
- linux查看mq是否启动的命令,rocketmq查看命令
- tableau三轴合并_《Tableau数据可视化实战》——1.12节合并不同数据源-阿里云开发者社区...
- python choice添加下拉框_自定义Django Form中choicefield下拉菜单选取数据库内容实例...
- 神舟笔记本电源管理软件_笔记本电脑长期不用充不上电了?原来问题就出在这儿...
- cascade down_Cascaded CNN 方法寻找人脸关键点
- 递归函数斐波那契数列python_使用Python函数递归实现斐波那契数列时为什么运行速度很慢?...