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;
}
ROS激光雷达动态避障算法优化(C++实战) 本文深入探讨了ROS激光雷达动态避障算法的C++实战优化。针对动态环境的核心挑战,文章系统性地介绍了从激光数据预处理(降噪、瘦身)、动态障碍物检测与跟踪,到基于动态窗口法(DWA)的智能决策与调优的全流程。重点分享了如何将障碍物速度预测融入DWA打分函数,以实现更安全、流畅的避障,并提供了工程架构、性能优化及真机调试的实用建议。 阅读详情

相关推荐

Ubuntu20.04系统Cuckoo sandbox所需环境搭建及安装(超详细图文)

请勿叫我大神,我只是互联网的搬运工~ 前言 本教程以Ubuntu20桌面版作为示范,服务器版同样适用,但可能稍微麻烦一点,服务器版本的话安装Xmanage套装使用可能会相对轻松一些,由于后面会使用到vbox的使用,对vbox命令行操作不熟悉的小伙伴用xmanage可能会相对轻松一点。 提示:以下是本篇文章正文内容,下面案例可供参考 安装ubuntu20桌面版 步骤1:转到https://ubuntu.com/download/desktop下载下载.iso。 步骤2:使用您选择的虚拟机监控程序(VMWa

ElsonHY的博客 1万+

【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

第1章>>1.5:神电测控为什么开发LabVIEW ZYNQ FPGA软件工具包?(ZYNQ芯片的特点与优势)《LabVIEW ZYNQ FPGA宝典》

ZYNQ是赛灵思公司(Xilinx)推出的新一代全可编程片上系统(APSoC,All-Programmable SoC),它将处理器的软件可编程性与FPGA的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。Zynq-7000系列是Xilinx于2010年4月推出的行业第一个可扩展处理平台,旨在为视频监视、汽车驾驶员辅助、工厂自动化、医疗器械等高端嵌入式应用提供所需的处理能力与计算性能。这款基于ARM处理器的SoC可满足复杂嵌入式系统的高性能、低功耗和多核处理能力等要求。

qq_40694786的博客 1646

知识点-数论进阶

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

Vincent19999999的博客 649

如何在Hyper-V、Virtual PC等虚拟机中使用USB设备

今天网盾科技给大家分享一篇在Hyper-V、Virtual PC等虚拟机中使用USB Over network软件用USB设备的方法。 当前Hyper-V Server与Microsoft Virtual PC的虚拟机,不支持USB的设备,如果你有USB设备需要在虚拟机中使用,例如USB的加密狗、智能卡、网上银行的U盾等,可以通过USB Over Network软件,通过网络,使用USB设备。 USB Over Network是一款“客户/服务器”软件,是这么一款功能强大 USB 设备共享软件。它使用方

wangdunkeji_idc的博客 4997

钣金件设计规范

为保证折弯 强度,钣金折弯钣金应大于材料的最小折弯半径。在设计U型弯曲件时,两弯曲边最好长度相等,以免弯曲时产品偏 移而产生废品,如果因为结构设计不允许两边一样长,为保证产品在模 具中准确定位,应预先在设计时添加工艺定位孔,特别是多次折弯成 形的零件,必须设计工艺孔为定位基准,以减少累计误差,保证产品 质量,如图2-11所示。凸包是依靠材料的延伸使钣金件形成局部凹陷或凸起的冲压工序凸包与拉深是完全不同的冲压工艺,凸包中材料厚度的改变为费意图性 的,即厚度的少量改变是变形过程中形成的,不是设计指定的要求。

制冷技术咨询与服务的博客 7323

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

如何用DeepSeek写年底工作总结?——从入门到精通的全流程指南

AI助手DeepSeek如何高效撰写工作总结 摘要:本文介绍如何利用DeepSeek智能AI助手高效完成工作总结写作。工作总结具有结构固定、语言规范、内容数据化三大特性,而DeepSeek的结构化生成、风格适配、数据整合和迭代优化四大核心能力与之完美匹配。文章提出"准备-搭架-填充-优化"四步工作法:1)精准输入岗位、时间范围等核心信息;2)先搭建逻辑清晰的提纲框架;3)分模块填充具体内容,突出数据与案例;4)通过风格润色和细节补充进行优化。通过合理运用多模态材料处理能力,DeepSee

通俗易懂学IT 287

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

Python 爬虫实战:在丁香医生抓取健康科普文章阅读量,普及健康知识

requests:用于发送 HTTP 请求,获取网页内容。或 lxml:用于解析 HTML 页面,提取目标数据。pandas:用于数据清洗和分析。matplotlib和seaborn:用于数据可视化。通过本项目,我们实现了以下目标:使用 Python 爬虫抓取丁香医生的健康科普文章阅读量。对数据进行清洗和分析,找出热门文章。通过可视化展示数据,并普及健康知识。

u014481728的博客 1566

【数据集】CAMS 全球生物质燃烧排放 GFAS(基于火灾辐射功率)

CAMS 全球生物质燃烧排放 GFAS(基于火灾辐射功率)

WW、forever的博客 400

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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

网络赛中有一道数论题出现了莫比乌斯反演这个概念,今天就学了一下 当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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

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

circle (容斥原理+数据结构)

题目大意:在一条直线上有2*n个点,点与点之间两两配对成n组。现在要你选出三组点对,使得这三组点对满足112233,122331,123123的其中一种形式,问方案数。n≤105n≤105n\leq 10^5。 题目分析:多年前的老坑,昨天晚上想填一下,发现还是不会做,而且我还是看不懂题解。懵逼了一整晚,最后翻出标程来看,终于看懂了做法。 从n个点对中选取3个点对,有C3nCn3C_n^3...

KsCla 1592
上一篇: 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、付费专栏及课程。

余额充值