The Sum of Unitary Totient

积性函数,满足质数点是多项式,直接 min_25 了,由于单次求解,所以使用递归的 min_25 会较快。

#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int prime[N], a[N], id1[N], id2[N], cnt, n, T, m;long long sum1[N], sum2[N], g1[N], g2[N], s[N];bool st[N];inline int ID(int x) {return x <= T ? id1[x] : id2[n / x];
}void init() {T = sqrt(n + 0.5);m = 0;for (int l = 1, r; l <= n; l = r + 1) {r = n / (n / l);a[++m] = n / l;a[m] <= T ? id1[a[m]] = m : id2[n / a[m]] = m;g1[m] = 1ll * a[m] * (a[m] + 1) /  2 - 1;g2[m] = a[m] - 1;}for (int j = 1; j <= cnt && 1ll * prime[j] * prime[j] <= n; j++) {for (int i = 1; i <= m && 1ll * prime[j] * prime[j] <= a[i]; i++) {g1[i] -= 1ll * prime[j] * (g1[ID(a[i] / prime[j])] - sum1[j - 1]);g2[i] -= (g2[ID(a[i] / prime[j])] - sum2[j - 1]);}}/*下面是递推的 min_25。*/// for (int i = 1; i <= m; i++) {//   s[i] = g1[i] - g2[i];// }// int top = 1;// while (1ll * prime[top] * prime[top] <= n) {//   top++;// }// top--;// for (int j = top; j >= 1; j--) {//   for (int i = 1; i <= m && 1ll * prime[j] * prime[j] <= a[i]; i++) {//     for (int cur = prime[j]; 1ll * cur * prime[j] <= a[i]; cur *= prime[j]) {//       s[i] += 1ll * (cur - 1) * (s[ID(a[i] / cur)] - sum1[j] + sum2[j]) + cur * prime[j] - 1;//     }//   }// }
}long long solve(int n, int m) {if (n < prime[m]) {return 0;} long long res = g1[ID(n)] - g2[ID(n)] - sum1[m - 1] + sum2[m - 1];for(int j = m; j <= cnt && 1ll * prime[j] * prime[j] <= n; j++) {for(int i = prime[j]; 1ll * i * prime[j] <= n; i *= prime[j]) {res += (i - 1) * solve(n / i, j + 1) + i * prime[j] - 1;}} return res;
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);for (int i = 2; i < N; i++) {if (!st[i]) {prime[++cnt] = i;sum1[cnt] = sum1[cnt - 1] + i;sum2[cnt] = sum2[cnt - 1] + 1;}for (int j = 1; j <= cnt && 1ll * i * prime[j] < N; j++) {st[i * prime[j]] = 1;if (i % prime[j] == 0) {break;}}}while (scanf("%d", &n) != EOF) {init();printf("%lld\n", solve(n, 1) + 1);}return 0;
}

ZOJ The Sum of Unitary Totient(min_25 筛)相关推荐

  1. ZOJ The Sum of Unitary Totient (Min_25筛)

    题意: 给你一个函数f(n)=(p1a1-1)(p2a2-1)...(prar-1) ,n=p1a1p2a2...prar 求\[\sum\limits_{i = 1}^n {f(i)} \],\[n ...

  2. ZOJ The Sum of Unitary Totient

    ZOJ 3808 %%%唐老师杜教筛博客课后练习题 不过网上好像没题解啊,好像唐老师也是分段打表的- 但是可以Min_25筛 显然这个ϕ∗\phi^*ϕ∗是积性函数, ϕ∗(p)=p−1\phi^*( ...

  3. loj #6053 简单的函数 min_25筛

    \(\color{#0066ff}{ 题目描述 }\) 某一天,你发现了一个神奇的函数\(f(x)\),它满足很多神奇的性质: \(f(1)=1\) \(f(p^c)=p \oplus c\) (\( ...

  4. Min_25筛学习Tip+链接

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

  5. Min_25 筛小结

    Min_25 筛这个东西,完全理解花了我很长的时间,所以写点东西来记录一些自己的理解. 它能做什么 对于某个数论函数 \(f\),如果满足以下几个条件,那么它就可以用 Min_25 筛来快速求出这个函 ...

  6. Min_25筛有关求解次小质因子

    #188. [UR #13]Sanrd 题意化简就是求次小质因子,这一步我们可以在Min_25筛的ans计算中得到, S(n, j)表示的是最小质因子大于等于primejprime_jprimej​的 ...

  7. LOJ6053简单的函数(min_25筛)

    LOJ6053简单的函数 https://loj.ac/p/6053 min_25筛模板题,但是要注意质数点有2比较特殊,需要在y==0的时候特判质数包含2的情况. #include<bits/ ...

  8. 【UOJ188】 Sanrd【类min_25筛】

    题意:设f(i)f(i)f(i)表示iii的不严格次大质因子(没有为000),求∑i=lrf(i)\sum_{i=l}^rf(i)∑i=lr​f(i) l≤r≤1011l\leq r\leq10^{1 ...

  9. [51NOD1847]奇怪的数学题(杜教筛+min_25筛+第二类斯特林数)

    f(x)f(x)f(x)表示xxx的次大约数,有f(x)=xx的最小质因数f(x)=\frac{x}{x的最小质因数}f(x)=x的最小质因数x​,那么 ∑i=1n∑j=1nsgcd(i,j)k=∑i ...

最新文章

  1. 解决SQL Server里sp_helptext输出格式错行问题
  2. spark历史版本下载地址
  3. ./NISwGSP: error while loading shared libraries: libopencv_stitching.so.3.0: cannot open shared obje
  4. precede和previous_Previous Analyses of Hungarian Phrase Structure
  5. 工作215:点击按钮报错
  6. 鄙视那些把爬虫当作AI的SB,清华学霸尹成大哥的历史上最强大的爬虫视频
  7. 保定学院计算机编程,惠普HP打印机驱动程序安装失败怎么办hewlett-packard上的文件...
  8. 沙龙回顾|你pick的程序小哥可以C位出道了吗?(内含PPT和演讲稿福利哦!)...
  9. qq拼音 搜狗拼音的对比
  10. 2022 社招 | 趋势科技 Linux开发 面经
  11. React之Protals详解
  12. dubbo+nacos+xml(nacos替换zookeeper)
  13. MySQL 的安装与启动
  14. 最高分姓名(name)
  15. win10电脑怎么清理电脑内存
  16. 为什么说JCLGMP必将带来更实实在在的就学等方面权益?
  17. 蚂蚁开放平台开发第三方授权登陆(三):Android端
  18. 我的JavaScript学习笔记续
  19. 1013 1014
  20. python常用英语单词(初学,英语不好的适用)

热门文章

  1. 自定义dialog弹窗html,自定义H5页面dialog弹窗
  2. java解析xml生成表格_JAVA读取XML文件并解析 以及 JAVA生成文本文件输出
  3. java ssh 和mvc_[转]JAVA三大框架SSH和MVC
  4. abd shell关闭所有程序_在后台服务器上运行程序
  5. 兵马未至,数据先行,且看如何进行数据挖掘!
  6. 当Java、C++、Python等编程语言都变成妹子。。。
  7. python从入门到爬虫_python爬虫从入门到放弃(一)之初识爬虫
  8. layui 如何去dom_javascript 怎么去引用layui里面的方法
  9. 判断小数是否相等_五年级上册数学综合练习题(填空、判断、选择、文字题),覆盖全册知识点!...
  10. jsp需要多少java基础_Java基础——JSP(一)