AT_abc427_f.[ABC427F] Not Adjacent

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 NN 的整数序列 A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N)。

AA 有 2N2^N 个子序列(不一定是连续的)。请你求出满足以下两个条件的子序列 (Ai1,Ai2,…,Aik) (1≤i1<i2<⋯<ik≤N)(A_{i_1},A_{i_2},\ldots,A_{i_k})\ (1\le i_1<i_2<\cdots<i_k\le N) 的个数:

  • 在 AA 中选出的元素不能是相邻的。即对于所有 1≤j<k1\le j<k,都有 1+ij≠ij+11+i_j\ne i_{j+1}。
  • 所选元素的和是 MM 的倍数。即 ∑j=1kAij≡0(modM)\displaystyle\sum_{j=1}^k A_{i_j}\equiv0\pmod{M}。

即便两个子序列作为整数序列相同,只要它们选取元素的位置不同,也要分别计数。

输入格式

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

NN MM A1A_1 A2A_2 …\ldots ANA_N

输出格式

输出满足条件的子序列个数。

输入输出样例

  • 输入#1

    7 6
    3 1 4 1 5 3 2

    输出#1

    6
  • 输入#2

    15 10
    5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

    输出#2

    798
  • 输入#3

    20 998244353
    778718481 719092922 676292280 713825156 0 434453766 620370916 67922064 0 577696866 21516423 955580612 955580612 0 332156721 0 0 0 632133714 500614291

    输出#3

    40

说明/提示

样例解释 1

符合条件的子序列有以下六个:

  • ()=()()=()
  • (A1,A3,A5)=(3,4,5)(A_1,A_3,A_5)=(3,4,5)
  • (A1,A4,A7)=(3,1,2)(A_1,A_4,A_7)=(3,1,2)
  • (A1,A6)=(3,3)(A_1,A_6)=(3,3)
  • (A2,A5)=(1,5)(A_2,A_5)=(1,5)
  • (A3,A7)=(4,2)(A_3,A_7)=(4,2)

因此,输出 6。

数据范围

  • 1≤N≤601\le N\le60
  • 1≤M≤1091\le M\le10^9
  • 0≤Ai<M0\le A_i<M
  • 所有输入均为整数。

由 ChatGPT 5 翻译

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

首页