ZOJ3881:From the ABC conjecture(莫比乌斯反演)

望月新一IUT理论的科普视频:abc Conjecture and New Mathematics (英文字幕) 这是一个介绍望月新一的IUT理论的科普视频,演讲者为日本数学家加藤文元。IUTT理论是望月新一为证明ABC猜想而发展的一个极为深刻的理论,目前只有极少的数学家能够完全理解,但加藤文元宣称在本视频中他能够对只有中学数学知识的听众讲解这一复杂的理论。 立即下载

题目传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3881


题目分析:又是一道神题。别的算法都是做一题少一题,只有数论是做一题多一题的……至于推导过程的话已经有神犇在网上放了很优秀的题解,我只是过来总结一下思路要点+贴代码而已。
要点:本题要求的是一个很奇怪的函数 f(n)=rad(n)ϕ(nrad(n)) ,这肯定无法直接化简。于是我们首先证明它是个积性函数,然后用积性函数的性质 f(n)=∏ti=1f(pkii) 将它拆开。接下来我们将这个拆开后的式子带进g函数里面化简,得到 g(n)=∏ti=1(1+pi∑ki−1j=0ϕ(pji)) 。然后我们发现 ∑ki−1j=0ϕ(pji)=∑d|pki−1iϕ(d)=pki−1i 。于是就变成了 g(n)=∏ti=1(1+pkii) 。我们再根据对其每个质因数的限制条件,转化成枚举因数并限制其gcd的形式,变成了 g(n)=∑d|n[(d,nd)=1]d (这很像SDOI2015约数个数和这题)。接下来就是很常规的化简和莫比乌斯反演。这题这也为我以后做其他数论题提供了一种新的思路吧。


CODE:

#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<stdio.h>
#include<algorithm>
using namespace std;

const int maxn=1000010;
const long long M=1e9+9;
typedef long long LL;

LL f[maxn];
bool vis[maxn];
int prime[maxn];
int cur=0;

LL n=0;

void Make()
{
    f[1]=1;
    for (int i=2; i<maxn; i++)
    {
        if (!vis[i]) f[i]=-1,prime[++cur]=i;
        for (int j=1; j<=cur && i*prime[j]<maxn; j++)
        {
            int k=i*prime[j];
            vis[k]=true;
            if (i%prime[j]) f[k]=-f[i];
            else
            {
                f[k]=0;
                break;
            }
        }
    }
    for (int i=2; i<maxn; i++)
    {
        f[i]*=i;
        if (f[i]<0) f[i]+=M;
    }
}

LL Sum(LL x)
{
    LL y=x+1LL;
    if (x&1) y>>=1;
    else x>>=1;
    return (x%M)*(y%M)%M;
}

LL S(LL x)
{
    LL temp=0,last;
    for (LL i=1; i<=x; i=last+1)
    {
        last=x/(x/i);
        temp=(temp+ x/i%M*( Sum(last)-Sum(i-1)+M ) )%M;
    }
    return temp;
}

int main()
{
    freopen("c.in","r",stdin);
    freopen("c.out","w",stdout);

    Make();
    while ( scanf("%lld",&n),n )
    {
        LL sn=(long long)floor( sqrt( (double)n )+1e-7 );
        LL ans=0;
        for (LL i=1; i<=sn; i++)
            ans=(ans+ f[i]*S(n/i/i) )%M;
        printf("%lld\n",ans);
        n=0;
    }

    return 0;
}
从GitHub到海浪模拟:手把手教你配置WAVEWATCHⅢ 6.07.0的完整开发与测试环境 本文详细指导如何在Ubuntu系统中配置WAVEWATCHⅢ 6.07.0的开发与测试环境,涵盖虚拟机设置、依赖安装、源码编译及案例验证的全流程。通过步骤化教程,帮助科研人员快速搭建高效的海浪模拟平台,提升海洋数值模拟的研究效率。 阅读详情

相关推荐

基于ensp大学网络规划与设计(完整文档+ensp拓扑图)

大家好,我是小华学长,一名计算机领域的博主。经过多年的学习和实践,我积累了丰富的计算机知识和经验,在这里我想与大家分享我的学习心得和技巧,帮助你成为更好的程序员。 作为一名计算机博主,我一直专注于编程、算法、软件开发等领域,在这些方面积累了大量的经验。我相信分享是一种双赢的方式,通过分享,我可以帮助他人提升技术水平,同时也能够得到学习交流的机会。 在我的文章中,你将会看到我对于各种编程语言、开发工具以及常见问题的解析和分析。我会结合自己的实际项目经验,为你提供实用的解决方案和优化技巧。我相信这些经验不仅能够

qq1325513482的博客 5万+

【ZOJ】3881 From the ABC conjecture【暴力容斥】

传送门:【ZOJ】3881 From the ABC conjecture复杂度大概O(N0.67)O(N^{0.67}),我也不会算www,首先转换一下(我们是根据积性函数打表找规律得到的,也可以推出来)使得: g(N)=∏pi ϵ N(pia+1)g(N)=\prod_{pi~\epsilon ~N} (pi^a+1) 暴力展开发现贡献为: h(N)=∑x=1N∑y=1N(x⋅y≤N an

poursoul 1190

震坤行:企业 MRO 物料标准化革新之路

那产生这些问题的原因是什么呢?要想解决此问题,企业高层必须下定决心对历史数据进行梳理,并善于利用信息技术,融合企业管理的流程机制,建立起一套适合企业发展的物料标准化管理体系,循序渐进,逐步规避由物料不规范带来的管理问题,最终使得这套标准化体系能够满足企业多元化业务发展需要。国内某电子制造头部企业原先内部物料无对应分类,仅有物料编码,给企业对采购、领料的过程中造成极大的不变,基于震坤行的目录结构,预测物料对应的分类,预测准确率达到80%以上,再辅以人工校正,最终搭建起一套标准的目录体系,如图2.2所示。

carson99的博客 421

知识点-数论进阶

知识点-数论进阶 abstract:整除分块,积性函数,线性筛,莫比乌斯反演,迪利克雷卷积,积性函数前缀和, 0.引入 Gym - 101485D debugging (之后会发现,这道dp的转移方程和杜教筛的转移如出一辙。) 题意 有一份包含1个 bug 的n( 1≤????≤1e6)行代码,运行一次到崩溃需要的时间为 r( 1≤????≤1e9)。 你可以任意行添加 printf 语句来输出调试...

Vincent19999999的博客 649

2025年一篇解决Windows11安装医学图像处理工具-FSL(各种问题解决,过程详细,小白轻松安装)

2025年一篇帮你解决FSl安装所有问题,包括环境安装、使用说明、常见问题,过程简单易懂,小白轻松安装。

weixin_52145255的博客 2522

解锁微信小程序Camera组件的隐藏技能:连续扫码背后的逻辑与陷阱

本文深入解析微信小程序Camera组件在连续扫码功能中的技术原理与优化方案,涵盖识别率提升、内存管理策略及典型问题排查。通过实战参数对比和代码示例,帮助开发者解决扫码枪应用中的性能损耗与界面卡顿问题,提升零售、物流等场景的工作效率。

weixin_29019241的博客 492

ABC Conjecture(大数分解)-2020ccpc(威海)

题意 给你一个范围是 [ 1 , 10 ^ ​18​​ ] 的数,让你求这个数能不能被一个 素数的平方 整除(即 c % ( i * i ) == 0) 思路1 用大数分解模板,将 c 分解得到 c 的所有质因子,然后去重(模板得到的是无序且没去重的),然后将所有质因子相乘,得到 tmp , 如果 tmp 跟 c 相等,说明 c 不能被素数的平方整除,否则可以。 (记得特判 c == 1 的情况!!! c = 1 是 “ no ” ) 代码1 #include<iostream> #incl..

Cosmic_Tree的博客 1335

Windows 11最新WDK安装避坑指南:从Visual Studio配置到KMDF驱动开发

本文提供了在Windows 11系统上进行KMDF驱动开发的完整环境搭建与实战指南。针对最新WDK与Visual Studio的配置变化,详细解析了从独立安装WDK/SDK、创建首个KMDF驱动项目,到编译排错、部署调试的全流程,帮助开发者高效避坑,顺利开启Windows内核开发。

weixin_29302047的博客 526

ZOJ 3881 From the ABC conjecture

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3881题意:定义rad(n)表示n的因子中最大的无平方因子数,φ(n)表示不大于n且与n互质的正整数个数,令f(n)=rad(n)⋅φ(n/rad(n)),g(n)=∑d|n f(d),h(n)=∑1≤i≤n g(i),给定正整数N,求h(N) mod 10^9+7

skywalkert's space 2902

【ubuntu24.04】auto remove后,重启,kernel panic ,please reboot your computer vfs unable to mount root fs

Ubuntu 24.04系统在运行auto remove后出现内核恐慌(kernel panic)无法启动,显示"VFS: unable to mount root fs"错误。该问题是由于当前内核被清除导致系统无法挂载根分区。解决步骤包括:1)尝试用GRUB菜单中的旧内核启动;2)在GRUB中临时编辑启动参数;3)使用Ubuntu启动盘进行chroot修复;4)使用Boot-Repair工具一键修复。成功启动后,需要重新安装linux-generic等元包,重建initramfs并更新

突围 1209

钢结构焊接连接工艺

钢结构焊接连接工艺

wwdoffice950426的博客 61

2020CCPC威海D.ABC Conjecture(素数筛+素数分解+思维)

题目链接:http://codeforces.com/gym/102798/problem/D 题意:给出c,要求找出a+b=c,其中要求abc的素数因子相乘得到结果小于c 解题思路:首先排除c为素数的情况,c如果为素数那么结果一定会大于等于c。 当c为合数的时候,c可以分解为素数相乘的形式,如果素数中有素数幂的出现,那么一定使得rad(abc)<c 判断素数幂的方法: 因为c的大小为1e18,可以先预处理1e6内的所有素数 ①然后判断c%(prim[i] * prim[i])是否为0,为0则直接输出

Buyi的博客 612

万字数据仓库面试题及参考答案

星型模型由一个中心的事实表和多个外围的维度表组成,事实表存储度量值和事实,维度表存储描述性属性和维度。星型模型和雪花模型的区别在于雪花模型将维度表进一步细化,形成多层次的结构,而星型模型由一个中心事实表和多个维度表组成,适用于查询较为简单的情况。维度建模通常采用星型模型或雪花模型,将数据分为事实表和维度表,其中事实表存储度量值和事实,维度表存储描述事实的属性。三者之间的关系可以这样理解:数据仓库主要关注历史数据的存储和分析,数据中台则关注数据的服务化和资产化,而数据湖则关注原始数据的存储和多样性。

大模型大数据攻城狮的专栏 559

2020威海-ABC Conjecture-(思维+数论)

D 题意: 就是给你一个数c,然后问你是否能构造出a+b==c,使rad(abc)<c。rad(n)就是n的所有质因子的乘积。c最大1e12。 思考: 可以发现,rad就是某个数的质因子乘积,所以如果c有个因子的次幂>1,那么很明显,abc就可以小于c了。然后如果c特别大,也就是在1e7之内找不到c的因子,那么c肯定是个很大的质数,或者是两个很大的质数乘积,所以再看看c是不是平方数,如果是就yes。记得要特判1, ...

m0_52398496的博客 395

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

关于莫比乌斯反演的几个题目(更新中)

网络赛中有一道数论题出现了莫比乌斯反演这个概念,今天就学了一下 当g(x) = sigma{f(d),d|x} 则f(x) = sigma{mu(d)*g(x/d),d|x}  其中mu(d)为莫比乌斯函数,详细了解请看具体数学吧 1.SPOJ VLATTICE 果断不会的,就翻了题解,这道题题解刚开始都看不懂。 后来才知道,莫比乌斯函数有另一种形式 当g(x) = sigma{

my coding life 3270

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ZOJ 3868 GCD Expectation 莫比乌斯反演

ZOJ Problem Set - 3868 GCD Expectation Time Limit: 4 Seconds      Memory Limit: 262144 KB Edward has a set of n integers {a1, a2,...,an}. He randomly picks a nonempty subset {x1, x2,…,xm} (

ocgcn2010的专栏 488

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

zoj3435(莫比乌斯反演+数论分块)

Ideal Puzzle Bobble Time Limit: 2 Seconds      Memory Limit: 65536 KB Have you ever played Puzzle Bobble, a very famous PC game? In this game, as a very cute bobble dragon, you must keep shoot

yypurpose的博客 570

2020CCPC威海站 D ABC Conjecture(pollard rho 大数质因数分解)

题意:给定你一个数c(c < 1e18),问你能否找到一个a和b使得 a + b = c,并且使得他们的乘积 a * b * c的所有不同的素因子的乘积小于c。 思路:给定一个c,我们先把c做质因数分解,然后从他的质因数中选中部分质因数或者他们的幂次构成a,然后我们考虑如何让c-a的质因子能最大程度的尽量和他们相同。 也就是说假如给定c = p1^x1 * p2x2 * p3^ x3 …pn ^ xm,我们如果选择a = p1^x1 * p2^x2 * p3^ x3 …pn ^(xm-1),那么我们.

forward77 577

zoj3435 莫比乌斯反演

传送门 题意:给定点(x,y,z)与(1,1,1)确定一个长方体,长方体边上及内部总共有x*y*z个点,问从(1,1,1)总共能看到多少个点 思路:点的类型分为三种:(1)在长方体内部、(2)在长方体面上(不包括与(1,1,1)共线的点)、(3)与(1,1,1)共线的点;如果我们把每个坐标都减1,可以发现:(1)如果坐标里有两个0,那么只有另一个数为1才可以看见、(2)如果坐标里有一个0,那么

竹丙丙丙丙 437

2020ccpc威海D题 ABC Conjecture(规律+pollard_rho大数质因数分解模板)

思路1:打表可得如果有两个以及以上的相同质因数,即可yes; /*来自:李双智学长模板*/ #include<iostream> #include<cmath> #include<cstring> #include<algorithm> #include<cstdio> #include<map> #include<stdlib.h> #include<time.h> #define times 20 us.

代码笔记本 881

望月新一IUT理论的科普视频:abc Conjecture and New Mathematics

        下载地址:https://download.youkuaiyun.com/download/danmoso_2/10958029         这是一个介绍望月新一的IUT理论的科普视频,演讲者为日本数学家加藤文元。IUTT理论是望月新一为证明ABC猜想而发展的一个极为深刻的理论,目前只有极少的数学家能够完全理解,但加藤文元宣称在本视频中他能够对只有中学数学知识的听众讲解这一复杂的理论。...

Danmoso_2的博客 2044

2020 China Collegiate Programming Contest Weihai Site D ABC Conjecture(数论)

2020CCPC 威海站 D ABC Conjecture(数论) 题意 :给一个数 C(1-1e18),要求找到一个a,b。a+b=c;然后abc的积里面的素数因子要求< c,如果可以找到那么答案yes,否者no。 题解:首先可以明确的发现如果C是素数,一定是no,因为 a,b里面必然还有别的素因子,那么相乘必然大于c,所以现在就是判断合数,那么怎么样合数满足条件,C=A * B * C * D * E…;我们可以把C这样表示出来,然后要尽量去减少他的因数的贡献是不是他的因子里面就要有幂次的,这样子

weixin_45187630的博客 865

C Collatz Conjecture 伪前缀gcd

给出n个数字,求子串gcd一共有多少种情况。因为明确说明是子串了,第i个数字与前面的gcd,必然要经过i-1.也就是说直接和  i-1个与前面gcd得到的数进行gcd即可。#include&lt;stdio.h&gt; #include &lt;algorithm&gt; #include&lt;iostream&gt; #include&lt;string.h&gt; #include&lt;v...

Little_boy_z的博客 539

ZOJ-3868-GCD Expectation(容斥)

GCD Expectation Time Limit: 4 Seconds      Memory Limit: 262144 KB Edward has a set of n integers {a1, a2,...,an}. He randomly picks a nonempty subset {x1, x2,…,xm} (each nonempty subset h

不会吃鱼的喵 674

zoj 3638 Fruit Ninja(多重集组合+乘法逆元+容斥原理)

题意: n种水果,取m个,每种水果可能有数量限制如苹果大于3个,桔子小于2个。问一共有几种取法? 解答:多重集的x1+x2+。。。+xn=(m-k),k 为那些   至少多少个  的和,即c(n+r-1,r),其中r=m-k     求解c(n+r-1,r)时要用到逆元,求解那些至多多少个时,用容斥原理。。 #include #include #include #includ

hlmfjkqaz的专栏 1360

SPOJ DIVCNT2(莫比乌斯反演+杜教筛)

题目传送门:http://www.spoj.com/problems/DIVCNT2/题目分析: 千古神题,这题想了我两天也没想出来…… 好吧,其实这题并没有用杜教筛,它并没有使用记忆化递归,也没有用狄利克雷卷积,只不过它的时间复杂度证明和杜教筛类似,也是O(n23)O(n^{\frac{2}{3}})(虽然我还是不知道具体是怎么证的)。该怎么说呢?至少加深了对积性函数前缀和的理解吧。 回到正

KsCla 1877
上一篇: bzoj2754:[SCOI2012]喵星球上的点名 (后缀数组+离线+树状数组)
下一篇: SPOJ1812:LCS2 (后缀自动机)
KsCla
博客等级 码龄10年 45粉丝 160原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值