HDU 6750 Function(莫比乌斯反演)(2020百度之星初赛1)

Function

推式子

S(n)=∑i=1n∑d∣id[gcd(d,id)==1]=∑d=1nd∑d∣i[gcd(d,id)==1]=∑d=1nd∑i=1nd[gcd(d,i)==1]=∑d=1nd∑i=1nd∑k∣gcd(d,i)μ(k)=∑k=1nμ(k)k∑d=1nkd∑i=1nk2dt=k2d=∑t=1nnt∑k2∣tμ(k)ktk2=∑k=1nμ(k)k∑k2∣tnttk2i=tk2=∑k=1nμ(k)k∑i=1nk2nik2iS(n) = \sum_{i = 1} ^{n} \sum_{d \mid i} d [gcd(d, \frac{i}{d}) == 1]\\ = \sum_{d = 1} ^{n} d \sum_{d \mid i} [gcd(d, \frac{i}{d}) == 1]\\ = \sum_{d = 1} ^{n}d \sum_{i = 1} ^{\frac{n}{d}}[gcd(d, i)== 1]\\ = \sum_{d = 1} ^{n}d \sum_{i = 1} ^{\frac{n}{d}} \sum_{k \mid gcd(d, i)} \mu(k)\\ = \sum_{k = 1} ^{n} \mu(k) k \sum_{d = 1} ^{\frac{n}{k}} d \sum_{i = 1} ^{\frac{n}{k ^2d}}\\ t = k ^ 2 d\\ = \sum_{t = 1} ^{n} \frac{n}{t} \sum_{k ^ 2 \mid t} \mu(k)k \frac{t}{k ^ 2}\\ = \sum_{k = 1} ^{\sqrt n} \mu(k)k \sum_{k ^ 2 \mid t} \frac{n}{t} \frac{t}{k ^ 2}\\ i = \frac{t}{k ^ 2}\\ = \sum_{k = 1} ^{\sqrt n} \mu(k) k \sum_{i = 1} ^{\frac{n}{k ^ 2}} \frac{n}{i k ^ 2} i\\ S(n)=i=1ndid[gcd(d,di)==1]=d=1nddi[gcd(d,di)==1]=d=1ndi=1dn[gcd(d,i)==1]=d=1ndi=1dnkgcd(d,i)μ(k)=k=1nμ(k)kd=1kndi=1k2dnt=k2d=t=1ntnk2tμ(k)kk2t=k=1nμ(k)kk2ttnk2ti=k2t=k=1nμ(k)ki=1k2nik2ni

代码

注意随手取模,long long ×\times×long long会溢出!!!

/*Author : lifehappy
*/
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int inf = 0x3f3f3f3f;
const double eps = 1e-7;const int N = 1e6 + 10, mod = 1e9 + 7, inv2 = mod + 1 >> 1;int prime[N], cnt;ll mu[N];bool st[N];void init() {mu[1] = 1;for(int i = 2; i < N; i++) {if(!st[i]) {prime[cnt++] = i;mu[i] = -1;}for(int j = 0; j < cnt && i * prime[j] < N; j++) {st[i * prime[j]] = 1;if(i % prime[j] == 0) break;mu[i * prime[j]] = -mu[i];}}for(int i = 1; i < N; i++) {mu[i] = (mu[i - 1] + 1ll * i * mu[i] % mod + mod) % mod;}
}
ll calc1(ll l, ll r) {return 1ll * (l + r) % mod * ((r - l + 1) % mod) % mod * inv2 % mod;
}ll calc2(ll n) {ll ans = 0;for(ll l = 1, r; l <= n; l = r + 1) {r = n / (n / l);ans = (ans + 1ll * (n / l) % mod * calc1(l, r) % mod) % mod;}return 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;scanf("%d", &T);while(T--) {ll n, ans = 0;scanf("%lld", &n);int m = sqrt(n);for(ll l = 1, r; l <= m; l = r + 1) {r = min((int)sqrt(n / (n / (l * l))), m);ans = (ans + 1ll * ((mu[r] - mu[l - 1]) % mod + mod) % mod * calc2(n / (l * l)) % mod) % mod;}printf("%lld\n", ans);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P5170 【模板】类欧几里得算法

P5170 【模板】类欧几里得算法 https://www.cnblogs.com/bztMinamoto/p/10334354.html 对于类欧几里得算法&#xff0c;本质上可以理解为一条直线下的整点个数&#xff0c;是一个矩形区域。 然后将整数部分提出&#xff0c;就可以使得这个直线斜率较小&#xff0c;那么我们就可…

.NET Core跨平台部署于Docker(Centos)- 视频教程

.NET Core跨平台部署于Docker,Docker部署于Centos中&#xff0c;演示跨平台特性&#xff01;以下视频教程&#xff0c;请带上耳机开始聆听往期教程&#xff1a;.NET开发框架(一)-框架介绍与视频演示.NET开发框架(二)-框架功能简述.NET开发框架(三)-高可用服务器端设计.NET开发框…

矩阵快速幂各类题型总结(一般,共轭,1 * n, 矩阵简化)

Reading comprehension 这个不难找出递推式f[n]f[n−1]2f[n−2]1f[n] f[n - 1] 2f[n - 2] 1f[n]f[n−1]2f[n−2]1。 /*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc.h>using namespace std;typedef long long ll;co…

【清华集训2014】Sum)(类欧几里得算法)

【清华集训2014】Sum 然后本质上我们需要求解的就是那个带根号式子的奇偶性&#xff0c;然后我们发现这个式子很像是类欧几里得算法&#xff0c;求解一个斜率为无理数直线下的整点个数&#xff0c;然后我们直接对于一般形式求解&#xff0c;那么就是每次利用整数部分将斜率减小…

一本让我多花2倍时间读的书

这里是Z哥的个人公众号每周五11&#xff1a;45 按时送达当然了&#xff0c;也会时不时加个餐&#xff5e;我的第「87」篇原创敬上Hi&#xff0c;大家好&#xff0c;我是Z哥。熟悉我的小伙伴应该知道&#xff0c;我平时看书大多都很快&#xff0c;之前还把自己的速读技巧分享给了…

P3355 骑士共存问题(网络流)

P3355 骑士共存问题 经典的最大独立集问题&#xff0c;最大独立集就是最小点覆盖的补集&#xff0c;因为最小点覆盖等于最大匹配&#xff0c;所以最大独立集等于点数减去最大匹配。

[NOI2005]月下柠檬树 (自适应辛普森)

P4207 [NOI2005]月下柠檬树 如图&#xff0c;我们要求的面积就是这些圆形跟梯形的组合&#xff0c;由于投射到地面上&#xff0c;显然有h′htanθh \frac{h}{tan \theta}h′tanθh​&#xff0c;由此我们就可以开始推导这个f(x)f(x)f(x)函数了。 所以转换为我们要推导出直线a…

Kong 1.3发布,原生gRPC代理、上游TLS交叉认证

Kong 1.3 发布了&#xff0c;此版本亮点包括支持原生 gRPC 代理、上游 TLS 交叉认证&#xff0c;以及一系列新功能和性能改进。原生 gRPC 代理越来越多的用户转向微服务架构&#xff0c;并且希望有对原生 gRPC 代理的支持&#xff0c;Kong 1.3 解决了这个问题&#xff0c;为支持…

自适应辛普森(算法简要 + 模板)

简述&#xff1a; 对于普通的二次函数有f(x)ax2bxcf(x) ax ^ 2 bx cf(x)ax2bxc&#xff0c;原函数F(x)ax33bx22cxF(x) \frac{a x^3}{3} \frac{bx ^2}{2} cxF(x)3ax3​2bx2​cx。 有 ⎰lrf(x)F(r)−F(l)a3(r−l)3b2(r−l)2c(r−l)(r−l)6(2a(l2r2lr)3b(lr)c)(r−l)6((al…

P3358 最长k可重区间集问题(网络流:串联思想)

P3358 最长k可重区间集问题 这是一个经典模型&#xff0c;给定n个开区间&#xff0c;选择一些区间使得每个位置被覆盖次数不超过k&#xff0c;并最大化选择的区间长度之和。 首先一个直接的想法就是每一个区间匹配了它所对应的点&#xff0c;但是我们要求选择一个区间就必须要…

对Windows桌面应用程序进行UI自动化测试

所谓UI自动化测试&#xff0c;就是模拟一个用户&#xff0c;对应用程序的UI进行操作&#xff0c;以完成特定场景的功能性集成测试。要对Windows桌面应用程序进行UI自动化测试&#xff0c;目前可选的技术主要是两种&#xff1a;VS自带的CodedUI Test和AppiumWinAppDriver。但是&…

2019年ICPC银川区域赛 Easy Problem(简单莫比乌斯函数 + 欧拉降幂)

Easy Problem ∑a11m∑a21m∑a31m⋯∑an−1m∑anm[gcd(a1,a2,a3,…,an−1,an)d](a1,a2,a3,…,an−1,an)kdkd∑a11md∑a21md∑a31md⋯∑an−1md∑anmd[gcd(a1,a2,a3,…,an−1,an)1](a1,a2,a3,…,an−1,an)kdkd∑i1mdikdμ(i)∑a11mid∑a21mid∑a31mid⋯∑an−11mid∑an1mid(∏j1…

P3357 最长k可重线段集问题(网络流/串联/拆点)

P3357 最长k可重线段集问题 对于n条开线段&#xff0c;选择一个子集使得任意xp和子集相交的直线个数小于等于k&#xff0c;并使得选择的线段长度之和最大。 这道题看上去和区间集没有什么区别&#xff0c;只是费用发生变化&#xff0c;但是要注意一个特殊情况&#xff0c;那就…

项目实战中如何使用抽象类和接口

引子&#xff1a;时常会有这么一个疑惑&#xff0c;抽象类和接口功能好像&#xff0c;真正用起来该如何抉择呢&#xff1f;&#xff1f;好问题。。来看看书上怎么说的&#xff08;C#7.0本质论&#xff09;虽然方法可在基类中声明为抽象成员&#xff0c;但是&#xff01;&#x…

番茄日志发布1.0.3版本-增加Kafka支持

番茄日志&#xff08;TomatoLog&#xff09;能做什么可能你是第一次听说TomatoLog&#xff0c;没关系&#xff0c;我可以从头告诉你&#xff0c;通过了解番茄日志&#xff0c;希望能帮助有需要的朋友&#xff0c;番茄日志处理将大大降低你采集、分析、处理日志的过程。介绍Toma…

Java String类型变量的比较问题

今天写程序的时候&#xff0c;发现了一个很奇怪的问题&#xff0c;代码如下&#xff1a; if((address.getCountry())!"国家"){ ad.insertAddress(address); //将只有国家、省份、城市三列的Address对象插入到数据库表格中 } 其中&#xff0c;我设置了断点进行调试…

P2494 [SDOI2011]保密(网络流/最小割/01分数规划)

P2494 [SDOI2011]保密 这道题是一个很综合的题目 首先有一个二分图&#xff0c;到达一个点就可以到达所有该点相连的边&#xff0c;然后需要覆盖所有边&#xff0c;然后给定一张图你从起点出发然后可以到达二分图的节点&#xff0c;保证没有环&#xff0c;每条边有时间和花费&…

B. Product(2019ICPC西安邀请赛)(杜教筛)

Product ∑i1n∑j1n∑k1ngcd⁡(i,j)[k∣gcd⁡(i,j)]∑k1n∑i1nk∑j1nkgcd⁡(ik,jk)∑k1nk∑i1nk∑j1nkgcd⁡(i,j)∑k1nk∑d1nkd∑i1nkd∑j1nkd[gcd⁡(i,j)1]∑k1nk∑d1nkd(∑i1nkd2ϕ(i)−1)Tkd∑T1n∑k∣TkTk(∑i1nT2ϕ(i)−1)∑T1nTσ0(T)(∑i1nT2ϕ(i)−1)\sum_{i 1} ^{n} …

ArangoDB 3.5发布:流事务API、蒙面数据、搜索性能大幅提升、最短路径功能

ArangoDB 3.5 发布了。ArangoDB 是一个分布式原生的多模型数据库&#xff0c;具有灵活的文档、图形和键值数据模型。使用方便的 SQL 查询语言或 JavaScript 扩展构建高性能应用程序。此版本亮点包括&#xff1a;期待已久的 Streaming Transactions API&#xff0c;可以直接使用…

Java StringBuffer相关解惑

在编程过程中遇到的StringBuffer初始化以及赋值的时候&#xff0c;遇到的问题。 StringBuffer sbnew StringBuffer(); // StringBuffer sb1new StringBuffer(1000); // System.out.println("sb capacity:"sb.capacity()); //默认容量是16&#xff0c;StringB…