P2260 模积和题解

news/2024/11/15 7:03:57/文章来源:https://www.cnblogs.com/emmoy/p/18547260

模积和

题意:求出

$ \sum_{i=1}^n \sum_{j=1}^m(n \bmod i)\times(m\bmod j) $ 且 $ i\ne j $ 。

思路

10ps

\(O(nm)\) 暴力

30ps

首先我们发现可以将原式拆解一下,就可以变成

\[\sum^n_{i=1}(n\bmod i)\times\sum^m_{j=1}(m\bmod j) \]

但是这样是不对的,因为我们没有考虑 \(i=j\) 的情况,所以正确的式子为

\[\sum^n_{i=1}(n\bmod i)\times\sum^m_{j=1}(m\bmod j)-\sum_{i-1}^{\min(n,m)}(n\bmod i)\times(m\bmod i) \]

\(O(n+m)\) 的做法就完成了,30分到手。

60ps

根据打表发现,如果套上整除分块,商为同一个数的所有 \(i\) 会构成一个等差数列。

(以下默认要会整除分块,不会的先去学)

设当前的商的第一个 \(i\)\(l\) ,最后一个为 \(r\) ,则首项为 \(n\bmod l\) ,公差为 \(-\lfloor \frac{n}{l}\rfloor\) ,项数为 \(r-l+1\)

套一个等差数列求和公式,就可以将复杂度降至 \(O(\sqrt n+\sqrt m+n)\)

100ps

现在算法复杂度的瓶颈全在求 \(\sum_{i-1}^{min(n,m)}(n\bmod i)\times(m\bmod i)\) 上,那么我们可以尝试套上整除分块,那么还是一样,设当前的商的第一个 \(i\)\(l\) ,最后一个为 \(r\) ,那么

\[r=\min(\lfloor\frac{n}{\lfloor\frac{n}{l}\rfloor}\rfloor,\lfloor\frac{m}{\lfloor\frac{m}{l}\rfloor}\rfloor) \]

\(n\) 的首项为 \(ns\)\(m\) 的首项为 \(ms\)\(n\) 的公差为 \(ng\)\(m\) 的公差为 \(mg\) ,项数为 \(lg\)

那么

\[ns=n\bmod l \]

\[ms=m\bmod l \]

\[ng=-\lfloor \frac{n}{l}\rfloor \]

\[mg=-\lfloor \frac{m}{l}\rfloor \]

\[lg=r-l+1 \]

我们知道,在这里面,数列即为

\[ns·ms\Longrightarrow (ns-ng)·(ms-mg) \Longrightarrow......\Longrightarrow(ns-lg·ng)·(ms-lg·mg) \]

拆解一下,即为

\[ns·ms\Longrightarrow ns·ms-ng·ms-ns·mg+ng·mg \Longrightarrow......\Longrightarrow ns·ms\\-(lg-1)·ng·ms-(lg-1)·ns·mg+(lg-1)^2ng·mg \]

如果我们先不管那些 \(ng·mg\),那么原式就会变为

\[ns·ms\Longrightarrow ns·ms-ng·ms-ns·mg\Longrightarrow......\Longrightarrow ns·ms-(lg-1)·ng·ms\\ -(lg-1)·ns·mg \]

我们可以发现,这又是一个等差数列,首项为 \(ns·ms\) ,项数为 \(lg\) ,公差为 \(-ng·ms-ns·mg\) ,于是这一部分就完成了。

现在我们看到 \(ng·mg\),发现他们的系数分别为

\[0^2,1^2,2^2,3^2,4^2......(lg-1)^2 \]

那么这一部分就需要用到平方和公式了,即

\[\sum_{i=1}^n i^2=\frac{n(n+1)(2n+1)}{6} \]

那么这一部分就完成了。
最后将这两部分加起来,然后用一开始的容减去这个斥就可以得到答案。

复杂度 \(O(\sqrt n+\sqrt m)\)

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

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

相关文章

如何彻底禁止 macOS Sonoma 自动更新,去除更新标记和通知

如何彻底禁止 macOS Sonoma 自动更新,去除更新标记和通知如何彻底禁止 macOS Sonoma 自动更新,去除更新标记和通知 请访问原文链接:https://sysin.org/blog/disable-macos-update/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org本文与 macOS Ventura 操作基本…

pycharm改变语法错误的颜色

在PyCharm的默认颜色中,如果方法名称写错了或变量名称写错了,文字下会有淡黄色波浪线,右侧滚动条也是黄色的,根本看不清楚。 经过一番搜索,发现这个贴子:https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000597704/comments/11745417961874 you can…

超越图像超分辨率的任务驱动感知损失图像识别

超越图像超分辨率的任务驱动感知损失图像识别在实际场景中,由于低分辨率(LR)内容中缺乏可用信息,图像识别任务(如语义分割和对象检测)通常会带来更大的挑战。图像超分辨率(SR)是解决这些挑战的有前景的解决方案之一。然而,由于SR的病态特性,典型的SR方法很难恢复与任…

4D医学图像的无中间帧数据高效无监督插值

4D医学图像的无中间帧数据高效无监督插值4D医学图像代表具有时间信息的3D图像,在临床实践中对于捕捉动态变化和监测长期疾病进展至关重要。然而,由于辐射暴露和成像持续时间等因素,获取4D医学图像带来了挑战,需要在实现高时间分辨率和最小化不利影响之间取得平衡。鉴于这些…

Windows 直接访问 WSL2 路径并直接进行读写操作,权限不足解决方法

https://blog.csdn.net/qq_33412312/article/details/119720052 https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config

一文搞懂 ARM 64 系列: ADD(立即数版)

一文搞懂 ARM 64 系列: ADD(立即数版)汇编中,加法指令很重要,因为它是执行其他很多指令的基础。 同时,加法指令也会影响NZCV标志。有关NZCV的介绍,可以参看《一文搞懂 ARM 64 系列: ADC》。 ARM64汇编中,ADD指令有3种形式,这里介绍第一种形式,也就是与立即数相加。 1 指…

Win10通过安装包安装Apple Music

打开Windows的开发者模式下载应用安装包 打开 https://store.rg-adguard.net用 URL 来搜索,只需要在 https://www.microsoft.com/zh-cn/store/ 找到你要安装的应用,然后复制 URL 即可在URL(Link)中输入https://apps.microsoft.com/store/detail/apple-music-preview/9PFHDD62…

01转二维码(不是二进制)

例题ctfhub/隐写v2.0打开是一张图片文件分离得到zip,爆破密码得到7878 打开得到0和1, !!!不是二进制转图片,直接是二维码 缩小能看到000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000…

LIS系统与仪器进行通信-软件

上一篇文章介绍了LIS系统与仪器进行通信的方式和协议。这篇文章主要介绍一下按照通信方式和协议开发的一个通信软件。 这个软件在LIS信息传输中充当一个中间者的角色,只负责在仪器和三方系统中传递消息。仪器、通信软件、三方系统三者之间的通信流程如下图:登录界面首页首页可…

iman——冲刺日志(第三天)

阉割版 团队成员分工与进度 📝👥组别 成员 完成的任务 完成任务所用时间 (小时) 剩余时间 (小时)前端 阿依娜孜 完成总览页面行程概览与高德地图接入,实现动态地图显示效果。 2 2前端 郭剑敏 优化并完善路线编辑功能的前端代码。 2 1前端 王梓铭 优化主页和导航栏布局,提…

雷电9安卓模拟器安装Xposed环境

参考:抹机王-雷电9-EdXposed框架安装 资源包:点击下载 备用链接 部署雷电9 开启雷电9的root权限修改模拟器磁盘共享方式为System.vmdk可写入安装Magisk 从资源包安装Magisk Delta.apk打开Magisk Delta,在 Magisk 那一栏点击安装下一步安装至系统分区注意:如果在该步骤没有出…

基于gossip流言算法实现alertmanager高可用

目录一.alertmanager高可用架构设计1 Gossip流言算法协议原理分析2 Gossip的优劣势3 Gossip中通信模式二.搭建alertmanager高可用架构实战1.搭建alertmanager高可用架构2..测试高可用 一.alertmanager高可用架构设计 1 Gossip流言算法协议原理分析如上图所示,我们可以发现aler…