loj#P3584. 「eJOI2021」K 划分

「eJOI2021」K 划分

题目描述

本题译自 eJOI2021 Problem B. Kpart

Virgil 刚刚开始学习数组的性质。因此,他定义了 KK-数组,为任意正整数数组 AA 满足所有长度为 KK 的连续子序列可以被划分为两个不相交,并且可能不是连续的子序列,但是两个子序列的和是相等的。例如 1,2,1,31,2,1,3 是一个 33-数组,因为 1,2,11,2,1 可以被划分为 1,11,122,两个子序列的和都是 222,1,32,1,3 可以划分为 2,12,133,两个子序列的和均为 33。但它不是一个 22-数组,因为 1,21,2 不能被划分为和相等的两个不相交,并且可能不是连续的子序列。类似地它也不是一个 44-数组。

给定 TT 个正整数数组。对于每个数组 AA,Virgil 想知道 AAKK-数组的所有 KK 值。

输入格式

第一行包含一个整数 TT,接下来给出 TT 个数组。

每个数组用两行描述。第一行包含一个整数 NN 表示数组的长度。第二行包含数组的元素,两个数中间用一个空格隔开。

输出格式

按顺序输出对于每个数组 AA 的答案。对于每个数组输出一行,首先输出给定数组是 KK-数组所有满足条件的 KK 的个数,接下来按递增顺序输出这些 KK 的值。

2
7
7 3 5 1 3 3 5
6
1 2 3 5 8 3

2 4 6
2 3 6

数据范围与提示

  • 1T201\le T\le 20
  • A\sum A 表示在任意数组中所有元素的和(不是所有数组中的元素和)。那么 1A1051\le \sum A\le 10^5
# 分值 限制
11 1010 1N301\le N\le 30
22 2020 31N12031\le N\le 120
33 7070 121N103121\le N\le 10^3