Processing math: 100%

[坑]狄利克雷卷积和反演

开个坑,记录一些和反演以及狄利克雷卷积的东西。

首先积性函数、狄利克雷卷积等基本概念不写了,就讲讲性质吧。

有几个一定要记住的东西:

μ1=e

φ1=id

μid=φ

这几个在推式子的过程中都有很大的作用,务必要记住。

所谓莫比乌斯反演,其实就是:

F=f1f=Fμ

(谜之音:其实很多所谓“反演题”都没用到这俩性质啊……)

关于莫比乌斯函数本身,还有一个好康的性质:

(μ1)(k)=ki=0(1)iCik

继续阅读

[BZOJ 2186]沙拉公主的困惑

这个题啊……亦可赛艇!

答案是。原因很简单,把分成长度为的若干段,除去第一段外每一段中与互质的数肯定满足(否则,就会有大于一的公因子了)。所以说每一段内与互质的数都有个。

麻烦好像就在于求一个阶乘的欧拉函数。考虑一个新乘上的数能给答案带来的贡献——如果这个数是合数,它的所有因子在前面都有了,只能把他自己贡献出来;如果这个数是质数(假设为),出了贡献自己以外还会贡献一个,最后乘起来就是贡献了。筛一遍素数再递推一下就好辣~

并且……可能非常大,所以说除去那块要用逆元做。

(顺便说下阶乘也要递推)

代码:

[BZOJ 2118]墨墨的等式

论如何把数论乱搞和图论乱搞出在一起……

这个题由于要求,所以不能gcd乱搞。我们可以先取的最小值(忽略为0的情况,为啥取最小值待会再说),对方程两边模。然后对于任何能使某个同余方程成立的,将其中所有同时加任意个,同余方程都成立。

取模后,,所以说只要对于中的每个数找出最小的一组合法解即能推出其他解(所以说,剩余系越少效率越高,这也就要求取的要小)。不过这个最小的一组合法解怎么找?

我们先找出任意一个合法(比如说0吧),然后尝试加上,就可以推出其他的最小解。这个应用当然是需要最短路辣。

求出来的最短路,表示的是取最小解时的。这样的话就可以推出某个前缀区间中合法的个数(能加多少,就有多少个,注意不要忽略加0个的情况),并且答案符合区间减法,最后做差分即可。

注意忽略的情况(相当于不存在)。

代码:

[CF 711D]Directed Roads

这个题啊……其实不难。

首先你注意,他告诉你你可以把边弄反。

其次注意,这个图不一定就有一个环。

然后每个环的取反法有种(假设环中有条边),但是空集不行,全集也不行,因此每个环爆掉的方案有种。然后环之外的边随便弄,乘法原理乱搞即可。

然后你是不是感觉这个题似曾相识?是的似乎这个题就是NOIP D1T2的翻版。

代码:

[CF 707C]Pythagorean Triples

很好的数学题啊……

一看就应该想起来构造,对于为奇数的情况,我们可以假设为最小数。由此,可以构造出来一组勾股数(具体证明自己证去)。

为偶数时呢?化成奇数做?不好,因为这样会出现对于一类数会无能为力。偶数也可构造:

然后做就行了……

[BZOJ 1441]Min

这个问题看似无从下手。

我们可以先取,然后你就发现你似乎要解,而且还要求最小?你想到了什么?扩展欧几里得?对头!

由扩欧推广可得答案就是所有数的最大公约数。

代码:

[CF 371B]Fox Dividing Cheese

狐狸的三种操作的实质是除二,除三,除五。由此我们可以猜想在最优策略下,两块蛋糕最后的重量应该是。然后试除即可。

(大胆猜想,不用证明

代码:

[CodeVS 1012]最大公约数和最小公倍数问题

很经典的问题了吧……然而现在才A……

应注意,然而都可表示为的乘积,问题就好思考多了。答案就是的质因子的子集数(同一种质因子不能同时分配到P与Q中,否则gcd(P,Q)会不等于x)。

注意有可能无解!

代码:

[BZOJ 3713]Iloczyn

这题应该注意到,斐波纳契函数增长速度很快,以下的斐波纳契函数值很少,所以可以打表。这样,问题就迎刃而解了。

代码:

[BZOJ 1607]轻拍牛头

噫……筛法

然而……人傻自带大常数

代码:

继续阅读