51nod1584加权约数和

题目大意:

求:
\[ \sum_{i-1}^n\sum_{j=1}^nmax(i,j)\sigma(i*j) \]

题解

对于这个\(\max\),套路的把它转化成:
\[ 2*\sum_{i=1}^n\sum_{j=1}^ii*\sigma(i*j)-\sum_{i=1}^n i*\sigma(i*i) \]
对于前面的部分,我们可以:
\[ \sum_{i=1}^{n}\sum_{j=1}^ii\sum_{a|i}\sum_{b|j}a*\frac{j}{b}[(a,b)==1] \]

\[ \sum_{i=1}^{n}i\sum_{j=i}^n\sum_{a|i}\sum_{b|j}a*\frac{j}{b}\sum_{d|(i,j)}\mu(d) \]

\[ \sum_{d=1}^n\mu(d)\sum_{i=1}^{\frac{n}{d}}i*d\sum_{a|i}a*d\sum_{j=1}^{i}\sum_{b|j}\frac{j}{b} \]

\[ \sum_{d=1}^n\mu(d)d^2\sum_{i=1}^{\frac{n}{d}}i\sum_{a|i}a\sum_{j=1}^i\sum_{b|j}\frac{j}{b} \]

\[ \sum_{d=1}^n\mu(d)d^2\sum_{i=1}^{\frac{n}{d}}g_i \]

\[ \sum_{D=1}^n\sum_{d|D}\mu(d)d^2G_{D/d} \]

\[ g_n=n*\sigma_n*\sum_{i=1}^n \sigma_i \]

这个\(g\)数组就可以线性预处理了。

后面的部分可以线性筛,姿势++。

代码

#include<bits/stdc++.h>
#define N 1000009
using namespace std;
typedef long long ll;
const int maxn=1000000;
const int mod=1000000007;
bool vis[N];
int prime[N];
ll mu[N],md[N],mdp[N],ans[N],g[N],sum[N],f[N];
ll sig[N],sig2[N];
inline ll rd(){ll x=0;char c=getchar();bool f=0;while(!isdigit(c)){if(c=='-')f=1;c=getchar();}while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=getchar();}return f?-x:x;
}
inline void MOD(ll &x){x=x>=mod?x-mod:x;}
inline void prework(int n){sig[1]=mu[1]=sig2[1]=md[1]=mdp[1]=1;for(int i=2;i<=n;++i){//cout<<i<<" "<<md[i]<<" "<<mdp[i]<<endl;if(!vis[i]){prime[++prime[0]]=i;md[i]=mdp[i]=i;mu[i]=mod-1;sig[i]=i+1;sig2[i]=(1ll*i*i%mod+i+1)%mod;}for(int j=1;j<=prime[0]&&(i*prime[j])<=n;++j){vis[i*prime[j]]=1;if(i%prime[j]==0){mu[i*prime[j]]=0;md[i*prime[j]]=prime[j];mdp[i*prime[j]]=mdp[i]*prime[j];sig[i*prime[j]]=(sig[i]+1ll*prime[j]*mdp[i]%mod*sig[i/mdp[i]]%mod)%mod;sig2[i*prime[j]]=sig2[i]+(1ll*mdp[i]*mdp[i]%mod*md[i]%mod+1ll*mdp[i]*mdp[i]%mod*md[i]%mod*md[i]%mod)*sig2[i/mdp[i]]%mod;sig2[i*prime[j]]%=mod;break;}mu[i*prime[j]]=mod-mu[i];sig[i*prime[j]]=sig[i]*sig[prime[j]]%mod;md[i*prime[j]]=mdp[i*prime[j]]=prime[j];sig2[i*prime[j]]=sig2[i]*sig2[prime[j]]%mod;}}for(int i=1;i<=n;++i)MOD(sum[i]=sum[i-1]+sig[i]);for(int i=1;i<=n;++i){g[i]=1ll*sig[i]*i%mod*sum[i]%mod;MOD(sig2[i]=sig2[i-1]+sig2[i]*i%mod);for(int j=i;j<=n;j+=i)MOD(f[j]+=g[i]*mu[j/i]%mod*(j/i)%mod*(j/i)%mod);MOD(f[i]+=f[i-1]);ans[i]=(f[i]*2-sig2[i]+mod)%mod;}
}
int main(){prework(maxn);int T=rd(),ct=0;while(T--){int x=rd();ct++;printf("Case #%d: %lld\n",ct,ans[x]);}return 0;
}

转载于:https://www.cnblogs.com/ZH-comld/p/11031526.html

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

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

相关文章

冗余的阿里云实例开启和停止API

停止使用的API URL:https://api.aliyun.com/?spm5176.12818093.resource-links.dapi_platform.488716d0OrHCwQ#/?productEcs&version2014-05-26&apiStopInstance&tabDEMO&langJAVA 启动实例&#xff1a; URL:https://api.aliyun.com/?spm5176.12818093.re…

知乎大V推荐!面试官6个灵魂拷问,原理+实战+视频+源码

概述 想了很久怎么样可以让文章的标题不那么悲观&#xff0c;但是各种文案都在我脑海里面不断的被否定&#xff0c;要么是不那么抓眼球&#xff0c;要么是立意不匹配。最后想了想&#xff0c;这个标题是真的符合我最近的感悟。 希望看过文章&#xff0c;能有同感的朋友也能多…

Codeforces Round #499 (Div. 1) Solution

Codeforces Round #499 (Div. 1) Solution https://codeforces.com/contest/1010 为啥我\(\rm Div.1\)能\(A4\)题还是\(\rm specialist....\) A. Fly 二分答案&#xff0c;送分题。 #include<bits/stdc.h> using namespace std;void read(int &x) {x0;int f1;char ch…

Windows10家庭版安装Docker Desktop(非Docker Toolbox)

现在大部分笔记本预装的都是win10家庭版&#xff0c;而家庭版又不支持Hyper-V&#xff0c;Docker Desktop是无法直接安装的。但其实家庭版是可以通过脚本开启Hyper-V来安装Docker Desktop的。下面就教大家如何操作。 开启Hyper-V 添加方法非常简单&#xff0c;把以下内容保存…

阿里P7手把手教你!阿里P7级别面试经验总结,搞懂这些直接来阿里入职

什么是中年危机 根据权威数据显示&#xff0c;国内IT程序员鼎盛时期是在25-27岁左右&#xff0c;30岁对于程序员而言完全是一个38线&#xff0c;接着就是转业转岗的事情&#xff0c;这一点在业界也算是一个共识了。 大学毕业步入IT行业普遍年龄也是在22岁左右&#xff0c;然而…

自适应阈值化操作:adaptiveThreshold()函数

在图像阈值化操作中&#xff0c;更关注的是从二值化图像中&#xff0c;分离目标区域和背景区域&#xff0c;但是仅仅通过设定固定阈值很难达到理想的分割效果。而自适应阈值&#xff0c;则是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值。这样做的好处&#xf…

阿里P8亲自教你!Activity的6大难点,你会几个?年薪50W

前言 网上有很多对程序员简历的一些指导&#xff0c;这里就不重述&#xff0c;大家可以搜下网上其他大神的总结&#xff0c;结合自身情况修改下。我有几点建议&#xff1a; 1.尽量不要花哨&#xff0c;程序员和设计师或者产品运营还不一样&#xff0c;我们的简历成功与否决定…

为什么选用NACOS

Nacos Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如…

Qt样式表之一:Qt样式表和盒子模型介绍

一、Qt样式表介绍 Qt样式表是一个可以自定义部件外观的十分强大的机制&#xff0c;可以用来美化部件。Qt样式表的概念、术语和语法都受到了HTML的层叠样式表&#xff08;Cascading Style Sheets, CSS)的启发&#xff0c;不过与CSS不同的是&#xff0c;Qt样式表应用于部件的世界…

阿里P8大佬亲自教你!Android内存泄漏总结,看看这篇文章吧!

前言 这次去腾讯面试的是我大学同学&#xff0c;我们大学都是一学习&#xff0c;一起吃饭&#xff0c;一起洗脚&#xff0c;一起。。。 他们公司最近也裁员了&#xff0c;不过他是裁员前去的腾讯&#xff0c;不知道谁捞到他简历了&#xff0c;莫名就走了流程&#xff0c;他莫…

Sentinel在订单大量服务调用的应用场景

Sentinel译为“哨兵”&#xff0c;顾名思义&#xff0c;面对您后台的大量服务/微服务&#xff0c;前置一个哨兵&#xff0c;但面对大量请求时&#xff0c;让后台服务有序被调用&#xff0c;但某些服务的不可用时&#xff0c;采用服务熔断降级等措施&#xff0c;让系统仍能平稳运…

leetcode 214 Shortest Palindrome

lc214 Shortest Palindrome 可以将问题转化成找到原字符串的最长palindrome子串&#xff08;注意&#xff0c;子串必须以s[0]为起始&#xff09; 例如&#xff1a;sdserf sds为最长palindrome子串 只需要将sds之后的子串翻转一下&#xff0c;补充到原字符串之前即可 fre sdser…

程序员深度学习!我想谈谈关于Android面试那些事,附赠课程+题库

想要成为一名优秀的Android开发&#xff0c;你需要一份完备的知识体系&#xff0c;在这里&#xff0c;让我们一起成长为自己所想的那样~。 25%的面试官会在头5分钟内决定面试的结果60%的面试官会在头15分钟内决定面试的结果 一般来说&#xff0c;一场单面的时间在30分钟左右&…

MOSS 代替Spring Boot Admin 的服务治理工具

1.1 什么是服务治理 服务治理&#xff0c;我也称之为微服务治理&#xff0c;是指用来管理微服务的整个生命周期。包括应用的创建&#xff0c;服务名的规范&#xff0c;服务的上下线&#xff0c;服务的迁移&#xff0c;整个服务的生老病死等方方面面的治理。 1.2 Moss概述 Mo…

Django之form表单组件、cookie与session

---恢复内容开始--- Form表单组件 引例&#xff1a; 先来看一个注册的例子&#xff0c;全部用的是reg函数来实现的。 views.py文件 def reg(request):errors {username:,password:}if request.method POST:username request.POST.get(username)password request.POST.get(p…

程序员经验分享:Android高级工程师系列学习路线介绍,面试必备

前言 曾听过很多人说Android学习很简单&#xff0c;做个App就上手了&#xff0c;工作机会多&#xff0c;毕业后也比较容易找工作。这种观点可能是很多Android开发者最开始入行的原因之一。 在工作初期&#xff0c;工作主要是按照业务需求实现App页面的功能&#xff0c;按照设…

Java实现将文件或者文件夹压缩成zip

Java实现将文件或者文件夹压缩成zip 最近碰到个需要下载zip压缩包的需求&#xff0c;于是我在网上找了下别人写好的zip工具类。但找了好多篇博客&#xff0c;总是发现有bug。因此就自己来写了个工具类。 这个工具类的功能为&#xff1a; &#xff08;1&#xff09;可以压缩文件…

算法题+JVM+自定义View,隔壁都馋哭了

反思 昨晚去北京大望路阿里面试, 产生了严重的挫败感, 羞愧难当. 比不得从大学就有目标有理想, 一直在为目标努力学习技术的同学, 在大学唯一能拿得出手的就是参加了电子设计大赛, 学了点嵌入式的知识. 毕业后开始做android, 说得好听点叫做项目, 实际上就是搬代码, 真正记到…

n2n内网穿透打洞部署全过程 + nginx公网端口映射

内网穿透、打洞工具有很多&#xff0c;此前在windows上使用的是vidcc这个玩意&#xff0c;也正因为linux不支持。自此在linux尝试过一些打洞工具&#xff0c;ssh 反向代理这些&#xff0c;因为安全性不便捷等多种原因&#xff0c;最终选择了n2n。 由于初次接触n2n&#xff0c;对…

Windows下快速删除上万个文件和子目录

为什么会慢 如果直接在Windows文件管理器里删除的话&#xff08;通过菜单或者键盘Del或者ShiftDel&#xff09;&#xff0c;删除这个数量的文件需要大概10几分钟&#xff0c;具体根据文件数量目录层次不同耗时不同。这么慢是因为在删除之前系统有个准备阶段&#xff0c;在这个阶…