最小公倍数之和 V2 51Nod - 1190(莫比乌斯反演)

MPC8308 eLBC控制器实战:NAND Flash与DRAM接口配置详解 在嵌入式系统设计中,本地总线控制器(LBC)是处理器与外部低速异步存储器(如NAND Flash、DRAM、SRAM)进行可靠通信的核心接口。其工作原理是通过可编程的时序状态机,灵活适配不同存储器的读写时序,从而替代专用接口芯片,简化硬件设计并降低成本。这项技术的核心价值在于其强大的可配置性,能够通过寄存器设置,让同一组物理引脚对接多种设备,极大提升了系统的扩展性。在工程实践中,配置eLBC的关键在于根据存储器数据手册的时序参数,精确计算并转换为控制器所需的时钟周期数。本文以MPC8308的增强型LBC(e 阅读详情

给出2个数a, b,求LCM(a,b) + LCM(a+1,b) + .. + LCM(b,b)。
例如:a = 1, b = 6,1,2,3,4,5,6 同6的最小公倍数分别为6,6,6,12,30,6,加在一起 = 66。
由于结果可能很大,输出Mod 10^9 + 7的结果。(测试数据为随机数据,没有构造特别坑人的Test)
Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 50000)
第2 - T + 1行:每行2个数a, b,中间用空格分隔(1 <= a <= b <= 10^9)
Output
共T行,输出对应的最小公倍数之和Mod 10^9 + 7的结果。
Sample Input
3
1 6
10 15
41 90
Sample Output
66
675
139860
关键:f(n)=∑d|nμ(d)∗d是积性函数
解:

∑i=ablcm(i,b)=∑i=abi∗bgcd(i,b)=b∗∑d∑a<=i<=bid∗(gcd(i,b)=d)=b∗∑d|b∑⌈ad⌉<=i<=bdi∗(gcd(i,bd)=1)=b∗∑d|b∑⌈ad⌉<=i<=bdi∗∑d′|gcd(i,bd)μ(d′)=b∗∑d|b∑d′|bdμ(d′)∑⌈ad⌉<=i<=bd,d′|ii=b∗∑d|b∑d′|bdμ(d′)∗d′∗(⌈⌈ad⌉d′⌉+⌊⌊bd⌋d′⌋)∗(⌊⌊bd⌋d′⌋−⌈⌈ad⌉d′⌉+1)2=b∗∑d|b∑d′|bdμ(d′)∗d′∗(⌈add′⌉+⌊bdd′⌋)∗(⌊bdd′⌋−⌈add′⌉+1)2=b∗∑d|b(⌈ad⌉+⌊bd⌋)∗(⌊bd⌋−⌈ad⌉+1)2∑d′|dμ(d′)∗d′

bonus:不过在推导的过程中,出了一些叉子,但是也得出了一下额外结论hh,我假设a是从1开始的,那么设:

sum(n)=∑i=1nlcm(i,n)

所以:
sum(n)=n∑i=1nigcd(i,n)

我们从枚举gcd的角度看看,若gcd(i,n)=g,则i=ag,n=bg,gcd(a,b)=1,我们实际上要求的就是a的这个值,但是有什么要求呢与b互质,所有说求的就是1到b内与b互质的数的和,定义这个函数为h(b)
所以:
sum(n)=n∑d|nh(nd)=n∑d|nh(d)

现在关键是有没有这个函数h(n)的简单形式,的确有且h(n)=nϕ(n)2,证明比较简单反正法即可,所以:
sum(n)=n∑d|nh(nd)=n∑d|ndϕ(d)2,(ϕ为欧拉函数)

题目代码
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<bitset>
#include<vector>
#define N 50000
#define INF 10000000000
#define mod 1000000007
using namespace std;
typedef long long  ll;
int a,b;
bool tag[50000];
vector<int> prime;
void getPrime()
{
    for(int i=2;i<N;i++)
    {
        if(!tag[i])
        {
            prime.push_back(i);
            for(int j=i+i;j<N;j+=i)
                tag[j]=true;
        }
    }
}
int fac[100];
int e[100];
int cnt;
void getFac(int x)
{
    cnt=0;
    for(int i=0;(ll)prime[i]*prime[i]<=x;i++)
    {
        if(x%prime[i]==0)
        {
            fac[cnt]=prime[i];
            e[cnt]=0;
            while(x%prime[i]==0)
            {
                x/=prime[i];
                e[cnt]++;
            }
            cnt++;
        }
    }
    if(x>1)
    {
        fac[cnt]=x;
        e[cnt]=1;
        cnt++;
    }
}
int fac2[100];
int cnt2=0;
int cal(int x)
{
    int now=1;
    for(int i=0;i<cnt2;i++)
        now*=1-fac2[i];
    return now;
}
ll get(int x)
{
    int l=a/x+(a%x?1:0);
    int r=b/x;
    return (ll)(l+r)*(r-l+1)/2%mod;
}

ll res;
void dfs(int cur,int temp)
{
    if(cur==cnt)
    {
        ll now=get(temp)*cal(temp)%mod;
        res=(res+now+mod)%mod;
        return;
    }
    dfs(cur+1,temp);
    int c=temp;
    for(int i=1;i<=e[cur];i++)
    {
        c*=fac[cur];
        fac2[cnt2++]=fac[cur];
        dfs(cur+1,c);
        cnt2--;
    }
}
int main()
{
    int t;
    getPrime();
    scanf("%d",&t);
    while(t--)
    {
        res=0;
        scanf("%d%d",&a,&b);
        getFac(b);

        dfs(0,1);
        res=res*b%mod;
        printf("%lld\n",res);
    }
    return 0;
}
HCIA-Datacom认证备考:从这12道经典真题,彻底搞懂静态路由与OSPF 本文深入解析HCIA-Datacom认证中的静态路由与OSPF核心原理,通过12道经典真题详细讲解静态路由配置技巧、OSPF邻居建立条件、DR选举机制等关键知识点,帮助考生彻底掌握网络路由技术,提升备考效率。 阅读详情

相关推荐

海康威视web控件开发+vue结合做网页开发

需求:vue的项目,需要在页面展示出海康的硬盘录像机连接的摄像头的实时监控画面以及回放功能. 准备:web开发包(包含插件以及demo,在海康官网即可下载32位64位的都有.那些需要积分下载的博主良心不疼么.) 点击这里下载:链接: https://pan.baidu.com/s/12FrbycWyWWyiRJH5Yd1tPA 提取码: gam5 开始开发: 1.安装demo目录下的WebComponentsKit.exe插件(根据自己的浏览器以及系统选择32位还是64位的插件) 2.打.

u013682258的博客 8482

【51nod 1190】最小公倍数之和 V2

Description给出2个数a, b,求LCM(a,b) + LCM(a+1,b) + .. + LCM(b,b)。 例如:a = 1, b = 6,1,2,3,4,5,6 同6的最小公倍数分别为6,6,6,12,30,6,加在一起 = 66。 由于结果可能很大,输出Mod 10^9 + 7的结果。(测试数据为随机数据,没有构造特别坑人的Test)Solutionans=∑i=abi∗bgc

dance in th dark的博客 727

Vercel静态站被墙别慌!手把手教你用Cloudflare免费CDN+域名解析搞定DNS污染

本文详细介绍了如何利用Cloudflare免费CDN和域名解析解决Vercel静态网站遭遇DNS污染的问题。通过诊断DNS污染、设计Cloudflare解决方案架构、实战配置步骤以及高级调优技巧,帮助用户快速恢复站点访问并提升防护能力。

weixin_27442001的博客 677

51nod 1190 最小公倍数之和 V2(莫比乌斯反演)

题意: 给定1<=a<=b<=109,求∑i=ablcm(i,b)?给定1<=a<=b<=10^9,求\sum_{i=a}^blcm(i,b)? 分析: ∑i=ablcm(i,b)=∑i=abi∗bgcd(i,b)=b∗∑d∑a<=i<=bid∗(gcd(i,b)=d)=b∗∑d|b∑⌈ad⌉<=i<=bdi∗(gcd(i,bd)=1)=b∗∑d|b∑⌈ad⌉<=i<=bdi∗∑d′|gcd(i

无限大な梦のあとの 何もない世の中じゃ 2023

抖音直播小风车跳转企业微信全攻略:企业号申请+落地页配置详解

本文详细解析了抖音直播小风车跳转企业微信的全流程,包括企业号申请、小风车配置和落地页优化。通过实战指南,帮助企业高效实现私域流量沉淀,提升直播转化率,特别适合电商和营销从业者参考。

weixin_29289821的博客 612

纯相位全息图优化算法综述

除此之外,还有许多用于减少斑点噪声的非迭代方法,例如:采用下采样掩膜的采样纯相位全息图(Sampled-Phase-only Hologram)方法、模式化相位掩膜(Patterned Phase-Only Hologram)方法、双相位方法(Double-Phase Method),以及使用非随机相位掩膜的方法(Random Phase-Free Method)等。迭代算法通常由一个对目标全息图的近似出发,经过一系列的重复操作不断优化这个近似全息图,直到该近似所得到的重建图像满足一定的误差要求;

ZhongKeWeiXing的博客 1426

[51nod1190]最小公倍数之和V2(莫比乌斯反演)

题解 传送门 题解 我是真的不明白这玩意儿是怎么跟反演扯上关系的…… 首先 \[ \begin{align} ans &=b\sum_{d|b}{1\over d}\sum_{i=a}^{b}i[\gcd(i,b)=d]\\ &=b\sum_{d|b}\sum_{i=\lceil{a\over d}\rceil}^{b\over d}i[gcd(i,{b\over d})=1]\\...

weixin_34032779的博客 172

ATGM332D模块串口配置保姆级教程:从9600波特率到NMEA数据过滤,一次搞定

本文提供ATGM332D模块串口配置的详细教程,涵盖从基础硬件连接到高级NMEA数据过滤的全过程。内容包括波特率优化、数据输出频率调整、NMEA语句过滤等实用技巧,帮助开发者快速掌握GNSS模块配置,提升定位系统性能。

weixin_30664051的博客 513

51nod 1190 最小公倍数之和 V2(莫比乌斯反演)

转自:http://blog.youkuaiyun.com/u014610830/article/details/49493279 没有看懂,膜拜一下 题意:  给定1&lt;=a&lt;=b&lt;=109,求∑i=ablcm(i,b)?   分析:  ∑i=ablcm(i,b)=∑i=abi∗bgcd(i,b)=b∗∑d∑a&lt;=i&lt;=bid∗(gcd(i,b)=d)=b∗∑d|b∑...

单木的专栏 633

嵌入式学习的书单推荐

以上是一些优秀的嵌入式学习书单推荐。选择适合自己的学习材料对于学习嵌入式系统非常重要。每一本书籍都有其独特的优势和特点,读者可以根据自己的学习目标和兴趣选择合适的书籍。同时,我们也要注意不断实践和探索,结合实际项目和项目经验,不断提升自己的嵌入式技术水平。希望本文的推荐能够帮助大家在嵌入式学习的道路上取得更好的成果。

新程序圆 1979

硬件手册——PT100精密测温电路

PT100精密测温电路 一、需求分析 根据题目要求为:测温范围为0-100℃、测温精度要求为±1℃。由于铂电阻具有精度高、性能可靠、稳定性好的特点,且铂电阻的电阻相对变化率与温度的关系曲线线性度最好,故选择铂电阻作为敏感元件。而在国标中,铂电阻有几种不同的标准,如PT100、PT1000。分别对应着0摄氏度下铂电阻的阻值为100R和1000R,由于需要考虑铂电阻的自发热问题,所以尽量选择阻值小的铂电阻,故选择PT100为最终型号。 二、电路设计 2.1 热电阻接法 热电阻测温电路有多种接法,其中三线制会导致

weixin_41655430的博客 5万+

51nod 1190 最小公倍数之和 V2【莫比乌斯反演】

参考:http://blog.youkuaiyun.com/u014610830/article/details/49493279 这道题做起来感觉非常奇怪啊……头一次见把mu推出来再推没了的…… \[ \sum_{i=a}^{b}lcm(i,b) \] \[ \sum_{i=a}^{b}\frac{i*b}{gcd(i,b)} \] \[ \sum_{d|b}\sum_{i=a}^{b}[gcd(i,b)=...

weixin_30426065的博客 156

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

[莫比乌斯反演 积性函数前缀和] 51Nod 1190 最小公倍数之和 V2

题解:http://blog.youkuaiyun.com/u014610830/article/details/49493279 #include #include #include using namespace std; typedef long long ll; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1

雯舞 853

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

[51nod1190]最小公倍数之和V2

Description给出a,b,求∑i=abgcd(i,b)\sum_{i=a}^{b}\gcd(i,b) a,b<=1e9,数据组数<=1e5,答案对1e9+7取模Solution看到gcd想反演(然而这个是lcm) 这个反演不是正常套路 坑了我好久才跳出来 首先ans=b∑d|b1d∑i=abi[gcd(i,b)=d]ans=b\sum_{d|b}{1\over d}\sum_{i=a

时光真疯狂, 我一路执迷于匆忙. 1028

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【莫比乌斯反演】非正常套路

本文记录笔者在刷莫比乌斯反演题时遇到的奇怪套路,基础的部分自动省略。 持续更新中…. 强行上性质 题目:【51NOD 1190】 最小公倍数之和 V2 题目大意: 求: ∑i=ablcm(i,b)\sum_{i=a}^b lcm(i,b) 本题式子可以变成这样: Ans=b∑d|b∑i=⌈ad⌉bdi[gcd(i,bd)=1]Ans=b\sum_{d|b}\sum_{i=\lce

613

【51nod1222】【最小公倍数计数】【莫比乌斯反演】

题目大意定义F(n)表示最小公倍数为n的二元组的数量。即:如果存在两个数(二元组)X,Y(X <= Y),它们的最小公倍数为N,则F(n)的计数加1。例如:F(6) = 5,因为[2,3] [1,6] [2,6] [3,6] [6,6]的最小公倍数等于6。给出一个区间[a,b],求最小公倍数在这个区间的不同二元组的数量。例如:a = 4,b = 6。符合条件的二元组包括:[1,4] [2,4] [4

inklutcuah’s blog 529

51nod 1190 最小公倍数之和 V2

给出2个数a, b,求LCM(a,b) + LCM(a+1,b) + .. + LCM(b,b)。 例如:a = 1, b = 6,1,2,3,4,5,6 同6的最小公倍数分别为6,6,6,12,30,6,加在一起 = 66。 由于结果可能很大,输出Mod 10^9 + 7的结果。(测试数据为随机数据,没有构造特别坑人的Test) Input 第1行:一个数T,表示...

weixin_34256074的博客 162

51nod进阶计划 20/20

目标 又要来51nod滑水啦 主要是来做点数学题 看看做完20题以后可以到哪里吧 现在16题,才3480分。。感觉好少啊。。 希望这20题可以贡献多一点吧。。 由于数学居多,所以会非常劣质 题表 1675 序列变换 很棒的一个题啊,用的是这一个 我们先求出F(i)F(i)F(i),表示左右gcd是i的倍数的和,然后再用上面这个形式变回去就可以了 1179 最大...

OZY的博客 614

51Nod1190 最小公倍数之和 V2

题目看这里繁衍反演真好玩来看看这个题的式子求Σlcm(i,b) (a&lt;=i&lt;=b)首先不难发现以下这样的变换让后做一下差分就得到答案,注意这题比较卡时间,需要比较好的优化#pragma GCC opitmize("O3") #pragma G++ opitmize("O3") #include&lt;stdio.h&gt; #include&lt;string.h&gt; #inclu...

扩展の灰(Extended Ash/Cooevjnz) 505

[51nod 1222] 最小公倍数计数(莫比乌斯反演)

题意 给定a,b\rm{a,b}a,b,求有多少对i≤j\rm{i\le j}i≤j满足lcm(i,j)∈[a,b]\rm{lcm(i,j)\in[a,b]}lcm(i,j)∈[a,b](a≤b≤1011)\rm{a\le b\le 10^{11}})a≤b≤1011)。 参考了ww3113306的这篇博客。 其实也比较套路,枚举gcd\mathtt{gcd}gcd后反演就转化成了求有多少个三...

lunch__的博客 355

51nod 1190 最小公倍数之和V2

题目大意: 给出2个数a, b,求LCM(a,b) + LCM(a+1,b) + .. + LCM(b,b)。 1 T组数据,1 且数据为随机,没有构造的卡人数据。 题解: 这一题我是不会的,去网上看了下题解,发现了一个奇怪的反演姿势。 必要结论: ∑d|nμ(d)=(n=1)\sum_{d | n} μ(d) = (n = 1) 证明略。 Ans=∑bi=alcm(i)Ans

Cold_Chair的博客 707

luogu3911 最小公倍数之和(莫比乌斯反演)

link 给定\(A_1,A_2,\dots,A_N\),求\(\sum_{i=1}^N\sum_{j=1}^Nlcm(A_i,A_j)\) \(1\le N\le 50000;1\le A_i\le 50000\) 为了推式子方便我们设: \(n=50000\) \(a_i=\sum_{j=1}^N[A_j=i]\) 答案就是\(\sum_{i=1}^n\sum_{j=1}^na_ia_jlcm...

weixin_30729609的博客 174

洛谷P3911 最小公倍数之和-莫比乌斯反演

传送门 题意: 给出n个数aiaia_i,求∑ni=1∑nj=1lcm(ai,aj)∑i=1n∑j=1nlcm(ai,aj)\sum_{i=1}^n\sum_{j=1}^n lcm(a_i,a_j) 1≤N≤50000;1≤ai≤500001≤N≤50000;1≤ai≤500001 \le N \le 50000; 1 \le a_i \le 50000 Solution: 再次...

Fizzmy的博客 641

51Nod 1180 - 方格射击游戏(莫比乌斯反演)

题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1180 【题目描述】 M*N的方格矩阵,一个人在左下角格子的中心,除他所站位置外,其他格子的中心都有一个敌人,他一次可发射一枚子弹干掉一条直线上的所有敌人,问至少要发射多少子弹才能干掉所有敌人 Input 输入2个数m, n,中间用空格分隔,对应矩阵的大...

Change the world by program. 330
上一篇: Number Theory (Easy) SPOJ - NUMTRYE(数论)(结论类)
下一篇: Sum Of Gcd HDU - 4676(莫队)
coldfresh
博客等级 码龄10年 107粉丝 405原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值