PyramidSequences

作者:杨景钦

关键词:最大公约数, 数形结合

题目描述

定义一个高度为的金字塔序列为如下的无限长序列:

现在给出,令是高度为的金字塔序列, 是高度为的金字塔序列, 求有多少个不同的数对, 满足存在一个 使得

算法一

直接枚举所有, 注意到循环节是 于是可以暴力枚举。

复杂度

算法二

不妨将序列中的每个数以及,这样数列可以从开始 以后的讨论均按照之后的序列来讨论。

首先需要一点数形结合的想法。 我们把一个点对当成一个平面上的横坐标为, 纵坐标为的点。

令第个点为, 我们把第个点和第个点()顺次相连。 形成了一条优美的折线。

的最大公约数()

我们发现有些点被折线经过多次, 其他点只被经过一次。 通过一些显然的分析可以得到, 这些点的横纵坐标均为的倍数, 再仔细观察可以看出这样一张图。

阿西吧这个图呢

于是可以看出, 我们可以将原地图分成的方块。 每个块内的只被经过一次的点有个, 而被经过多次的点可以很轻易的算出。 结果为

其中

复杂度

results matching ""

    No results matching ""