AT_abc446_e.[ABC446E] Multiple-Free Sequences

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在所有满足 0≤x,y≤M−10 \leq x, y \leq M-1 的整数对 (x,y)(x, y) 中,有多少对使得通过如下递推式定义的无限序列 (s1,s2,… )(s_1, s_2, \dots) 不包含 MM 的倍数?

  • s1=xs_1 = x
  • s2=ys_2 = y
  • sn=Asn−1+Bsn−2s_n = A s_{n-1} + B s_{n-2}(n≥3n \geq 3)

输入格式

输入从标准输入读入,格式如下:

MM AA BB

输出格式

输出一行,表示满足条件的整数对数量。

输入输出样例

  • 输入#1

    4 1 2

    输出#1

    7
  • 输入#2

    446 1 1

    输出#2

    0
  • 输入#3

    1000 784 385

    输出#3

    995373

说明/提示

样例解释 1

满足题中条件的整数对为 (x,y)=(1,1),(1,3),(2,1),(2,2),(2,3),(3,1),(3,3)(x,y) = (1,1), (1,3), (2,1), (2,2), (2,3), (3,1), (3,3),共计七对。

例如,当 (x,y)=(2,1)(x,y) = (2,1) 时,对应的序列为 (2,1,5,7,17,31,65,127,… )(2,1,5,7,17,31,65,127,\dots)。该序列中不包含 44 的倍数。因此,(x,y)=(2,1)(x,y) = (2,1) 满足题目条件。

另一方面,当 (x,y)=(3,2)(x,y) = (3,2) 时,对应的序列为 (3,2,8,12,28,52,108,212,… )(3,2,8,12,28,52,108,212,\dots)。该序列的第三项是 88,是 44 的倍数。因此,(x,y)=(3,2)(x,y) = (3,2) 不满足题目条件。

样例解释 2

没有整数对满足题中条件。

数据范围

  • 2≤M≤10002 \leq M \leq 1000
  • 0≤A,B≤M−10 \leq A, B \leq M-1
  • 输入均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页