P4213 【模板】杜教筛(Sum)

套路推式子

求s(n)=∑i=1nf(i)∑i=1n(f∗g)(i)=∑i=1n∑d∣if(d)g(id)=∑d=1n∑i=1⌊nd⌋f(i)g(d)=∑d=1ng(d)S(⌊nd⌋)=g(1)S(n)+∑d=2ng(d)S(⌊nd⌋)则有g(1)S(n)=∑i=1n(f∗g)(i)−∑d=2ng(d)S(⌊nd⌋)求s(n) = \sum_{i = 1} ^{n}f(i)\\ \sum_{i = 1} ^{n} (f*g)(i)\\ = \sum_{i = 1} ^{n} \sum_{d\mid i} f(d) g({\frac{i}{d}})\\ = \sum_{d = 1} ^{n} \sum_{i = 1} ^{\lfloor\frac{n}{d}\rfloor}f(i)g(d)\\ = \sum_{d = 1} ^{n}g(d) S(\lfloor\frac{n}{d}\rfloor)\\ = g(1)S(n) + \sum_{d = 2} ^{n} g(d) S(\lfloor\frac{n}{d}\rfloor)\\ 则有g(1)S(n) = \sum_{i = 1} ^{n} (f*g)(i) - \sum_{d = 2} ^{n} g(d) S(\lfloor\frac{n}{d}\rfloor) 求s(n)=i=1∑n​f(i)i=1∑n​(f∗g)(i)=i=1∑n​d∣i∑​f(d)g(di​)=d=1∑n​i=1∑⌊dn​⌋​f(i)g(d)=d=1∑n​g(d)S(⌊dn​⌋)=g(1)S(n)+d=2∑n​g(d)S(⌊dn​⌋)则有g(1)S(n)=i=1∑n​(f∗g)(i)−d=2∑n​g(d)S(⌊dn​⌋)
莫比乌斯函数求和
对S(n)=∑i=1Nμ(i)∑i=1n(I∗μ)(i)=∑d=1nS(nd)1=S(n)+∑d=2nS(nd)S(n)=1−∑d=2nS(nd)对S(n) = \sum_{i = 1} ^{N} \mu(i)\\ \sum_{i = 1} ^{n}(I * \mu)(i)\\ = \sum_{d = 1} ^{n} S(\frac{n}{d})\\ 1 = S(n) + \sum_{d = 2} ^{n} S(\frac{n}{d})\\ S(n) = 1 - \sum_{d = 2} ^{n} S(\frac{n}{d}) 对S(n)=i=1∑N​μ(i)i=1∑n​(I∗μ)(i)=d=1∑n​S(dn​)1=S(n)+d=2∑n​S(dn​)S(n)=1−d=2∑n​S(dn​)

欧拉函数求和
对S(n)=∑i=1nϕ(i)∑i=1n(I∗ϕ)(i)=∑d=1nS(nd)=S(n)+∑d=2nϕ(nd)S(n)=n(n+1)2−∑d=2nϕ(nd)对S(n) = \sum_{i = 1} ^{n} \phi(i)\\ \sum_{i = 1} ^{n} (I * \phi)(i)\\ = \sum_{d = 1} ^{n} S(\frac{n}{d})\\ = S(n) + \sum_{d = 2} ^{n} \phi(\frac{n}{d})\\ S(n) = \frac{n (n + 1)}{2} - \sum_{d = 2} ^{n} \phi(\frac{n}{d}) 对S(n)=i=1∑n​ϕ(i)i=1∑n​(I∗ϕ)(i)=d=1∑n​S(dn​)=S(n)+d=2∑n​ϕ(dn​)S(n)=2n(n+1)​−d=2∑n​ϕ(dn​)

代码

/*Author : lifehappy
*/
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include <bits/stdc++.h>#define mp make_pair
#define pb push_back
#define endl '\n'
#define mid (l + r >> 1)
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define ls rt << 1
#define rs rt << 1 | 1using namespace std;typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;const double pi = acos(-1.0);
const double eps = 1e-7;
const int inf = 0x3f3f3f3f;inline ll read() {ll 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 << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x;
}const int N = 5e6 + 10;ll phi[N], mu[N];
int prime[N], cnt = 0;
bool st[N];void init() {phi[1] = mu[1] = 1;for(int i = 2; i < N; i++) {if(!st[i]) {prime[cnt++] = i;mu[i] = -1;phi[i] = i - 1;}for(int j = 0; j < cnt && i * prime[j] < N; j++) {st[i * prime[j]] = 1;if(i % prime[j] == 0) {phi[i * prime[j]] = phi[i] * prime[j];break;}phi[i * prime[j]] = phi[i] * (prime[j] - 1);mu[i * prime[j]] = -mu[i];}}for(int i = 1; i < N; i++) mu[i] += mu[i - 1], phi[i] += phi[i - 1];
}unordered_map<int, ll> ans_phi;
unordered_map<int, ll> ans_mu;ll get_phi(ll x) {if(x < N) return phi[x];if(ans_phi[x]) return ans_phi[x];ll ans = x * (x + 1) >> 1;for(ll l = 2, r; l <= x; l = r + 1) {r = x / (x / l);ans -= (r - l + 1) * get_phi(x / l);}return ans_phi[x] = ans;
}ll get_mu(ll x) {if(x < N) return mu[x];if(ans_mu[x]) return ans_mu[x];int ans = 1;for(ll l = 2, r; l <= x; l = r + 1) {r = x / (x / l);ans -= (r - l + 1) * get_mu(x / l);}return ans_mu[x] = ans;
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);init();int T = read();while(T--) {ll n = read();printf("%lld %lld\n", get_phi(n), get_mu(n));}return 0;
}

杜教筛模板(P4213 【模板】杜教筛(Sum))相关推荐

  1. Xamarin XAML语言教程控件模板的模板绑定

    Xamarin XAML语言教程控件模板的模板绑定 控件模板的模板绑定 为了可以轻松更改控件模板中控件上的属性值,可以在控件模板中实现模板绑定功能.模板绑定允许控件模板中的控件将数据绑定到公共属性上. ...

  2. 微信小程序傻瓜制作_微信小程序模板制作:手把手教你做一个生鲜小程序

    传统线下生鲜水果类商家如今正面临诸多问题,包括服务范围有限.客户源不稳定.缺少订单导致新鲜食材过期等等.新零售概念的提出,很多商家虽然懂得要打通线上渠道,但通常都是仅仅局限于普通O2O外卖平台,其实这 ...

  3. 小清新网格背景教师公开课PPT模板

    模板介绍 小清新网格背景教师公开课PPT模板.一套教学课件幻灯片模板,内含青色,橙色多种配色,风格设计,动态播放效果,精美实用. 希望下面这份精美的PPT模板能给你带来帮助,温馨提示:本资源使用PPT ...

  4. 学校教育教学说课PPT模板-优页文档

    模板介绍 学校教育教学说课PPT模板-优页文档.一套,教学课件,说课PPT,幻灯片模板,内含青色多种配色,风格设计,动态播放效果,精美实用. 希望下面这份精美的PPT模板能给你带来帮助,温馨提示:本资 ...

  5. 文艺清新简约教师公开课PPT模板

    模板介绍 本套文艺清新简约教师公开课PPT模板,模板编号:P38614,大小10MB,共27页,比例为16:9,由封面.目录.转场页.内容.结尾5个部分构成. 内含橙色,灰色多种配色,精美风格设计,动 ...

  6. pr预设模板AE模板婚礼文字标题动画 Essential Wedding titles

    20P03 pr预设模板AE模板婚礼文字标题动画 Essential Wedding titles 版 本:AE CS5.5或者更高版本,Premiere CC 2017.2或者更高版本 分辨率:高清 ...

  7. 成长秘笈:是你教我,不是我教你

    郑昀 20180622 "谢谢你,你是第一个面试的时候跟我说这么详细的.那我到你们公司之后怎么就能成长了呢?" "你们这些人最大的问题是出不了方案. 为什么出不了方案? ...

  8. C++知识点59——类模板(4、类模板的模板参数是一个类模板)

    接上一篇文章https://blog.csdn.net/Master_Cui/article/details/111824152 七.类模板的模板参数是一个模板类 类模板的模板参数本身可以是一个类模板 ...

  9. 记录一下HALCON基于可变形,利用CAD画dxf模板进行模板匹配(二)

    本文接着上一篇记录一下HALCON基于可变形,利用CAD画dxf模板进行模板匹配 打开HALCON并打开匹配助手 匹配助手如图 "创建"页说明: 1,选择匹配方式 中间偏上方的下拉 ...

  10. 【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )

    文章目录 函数模板 类模板 代码示例 函数模板 1. 模板编程 : 类似于 Java 中的泛型编程 ; ① 函数模板 : 对应着 Java 中的泛型方法 ; ② 类模板 : 对应 Java 中的泛型类 ...

最新文章

  1. 一行代码集成带负数的自定义键盘
  2. verilog基础篇RAM IP核的使用
  3. php.ini权限,php开启与关闭错误提示适用于没有修改php.ini的权限_PHP
  4. linux下定时清理磁盘日志步骤
  5. java中char类型_【考点】JAVA中的char类型
  6. HDU Problem - 4289 Control(最大流)
  7. 电脑软件:推荐八款提高工作效率的软件,值得收藏!
  8. sts集成jboss_与JBoss BPM Travel Agency更新了Modern BPM数据集成
  9. spring boot rabbitmq_Spring Boot+RabbitMQ 实现延迟消息实现完整版,实用!
  10. ecshop 模板 php代码,ecshop无法在模板文件.dwt和.lbi中直接添加php代码的解决方法...
  11. 【MyBatis笔记】07-MyBatis 核心配置文件
  12. 111 《深入理解Java虚拟机》读书笔记
  13. Lc695-岛屿的最大面积
  14. Python加载失败
  15. 使用 JavaScript 下载文件
  16. 微信小程序项目-出租屋管理系统
  17. 贝尔维尤游戏巨头融资2亿美元!
  18. 解决QQ群文件未通过安全检测无法下载问题
  19. 计算机网络的形成与发展
  20. PCIe x4 transceiver 4通道光纤数据传输卡

热门文章

  1. python利用特征进行可视化样本显示_利用Python进行机器学习之特征选择
  2. 她13岁自己造飞机,17岁进麻省理工,3篇黑洞论文被霍金引用......
  3. 这4部有生之年必看的“教材级”纪录片,免费领取!
  4. 有的人走着走着就散了!
  5. php 分享微博,php微信分享到朋友圈、QQ、朋友、微博
  6. 工作原理是什么_磁翻板液位计工作原理是什么?
  7. android textview动态设置,android – 如何动态设置文本到TextView?
  8. tensorrt轻松部署高性能dnn推理_部署环境之:tensorRT的插件
  9. neo4j 查询同一节点的两个上级_WhatRoute for Mac(互联网流量诊断查询工具)
  10. 台电x80plus装linux,纤巧却不简单——台电X80 Plus评测