#D. Enumerate Sequences

    Type: Default 1000ms 256MiB

Enumerate Sequences

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

给定长度为 nn 的正整数序列 (r1,,rn)(r_1, \ldots, r_n) 和正整数 kk

以字典序从小到大的顺序输出所有满足 1airi1 \le a_i \le r_ia1++ana_1 + \cdots + a_nkk 的倍数的长度为 nn 的整数序列 (a1,,an)(a_1, \ldots, a_n)

请按字典序从小到大依次输出所有满足以下条件的长度为NN的整数序列。

  • ii个元素在11RiR_i之间(包含11RiR_i)。
    • 总和是KK的倍数。

数列的字典序

​ 数列A=(A1,,AA)A = (A_1, \ldots, A_{|A|})在字典序上严格小于数列B=(B1,,BB)B = (B_1, \ldots, B_{|B|}),是指满足以下1. 或2. 中的任意一条。

  1. A<B|A| < |B|(A1,,AA)=(B1,,BA)(A_1, \ldots, A_{|A|}) = (B_1, \ldots, B_{|A|})
  2. 存在某个整数1imin{A,B}1\leq i \leq \min\{|A|, |B|\},同时满足以下两点:
  • $(A_1, \ldots, A_{i - 1}) = (B_1, \ldots, B_{i - 1})$
    • Ai<BiA_i < B_i

输入格式

第一行两个整数 n,kn, k,第二行 nn 个整数 r1,,rnr_1, \ldots, r_n

输出格式

若干行,每行一个满足条件的序列 aa,以字典序从小到大的顺序输出。

样例 #1

样例输入 #1

3 2
2 1 3

样例输出 #1

1 1 2
2 1 1
2 1 3

样例 #2

样例输入 #2
1 2
1
样例输出 #2

样例 #3

样例输入 #3
5 5
2 3 2 3 2
样例输出 #3
1 1 1 1 1
1 2 2 3 2
1 3 1 3 2
1 3 2 2 2
1 3 2 3 1
2 1 2 3 2
2 2 1 3 2
2 2 2 2 2
2 2 2 3 1
2 3 1 2 2
2 3 1 3 1
2 3 2 1 2
2 3 2 2 1

数据范围

  • 1  N  8 1\ \le\ N\ \le\ 8
  • 2  K  10 2\ \le\ K\ \le\ 10
  • 1  Ri  5 1\ \le\ R_i\ \le\ 5
样例1解释

应输出的序列有3个 ,分别是 (1,1,2),(2,1,1),(2,1,3) (1,1,2),(2,1,1),(2,1,3)

样例2解释

也有可能不存在应输出的数列。在这种情况下,输出为空。

零基础——深度优先搜索

Not Claimed
Status
Done
Problem
4
Open Since
2025-3-15 12:00
Deadline
2025-3-23 23:59
Extension
24 hour(s)