当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

5908:Abelian Period

题目描述
Let $S$ be a number string, and $occ(S,x)$ means the times that number $x$ occurs in $S$.

i.e. $S=(1,2,2,1,3),occ(S,1)=2,occ(S,2)=2,occ(S,3)=1$.

String $u,w$ are matched if for each number $i$, $occ(u,i)=occ(w,i)$ always holds.

i.e. $(1,2,2,1,3)\approx(1,3,2,1,2)$.

Let $S$ be a string. An integer $k$ is a full Abelian period of $S$ if $S$ can be partitioned into several continous substrings of length $k$, and all of these substrings are matched with each other.

Now given a string $S$, please find all of the numbers $k$ that $k$ is a full Abelian period of $S$.
输入解释
The first line of the input contains an integer $T(1\leq T\leq10)$, denoting the number of test cases.

In each test case, the first line of the input contains an integer $n(n\leq 100000)$, denoting the length of the string.

The second line of the input contains $n$ integers $S_1,S_2,S_3,...,S_n(1\leq S_i\leq n)$, denoting the elements of the string.
输出解释
For each test case, print a line with several integers, denoting all of the number $k$. You should print them in increasing order.
输入样例
2
6
5 4 4 4 5 4
8
6 5 6 5 6 5 5 6
输出样例
3 6
2 4 8
来自杭电HDUOJ的附加信息
Recommend wange2014

该题目是Virtual Judge题目,来自 杭电HDUOJ

题目来源 BestCoder Round #88

源链接: HDU-5908

最后修改于 2020-10-25T23:26:38+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
2000/1000MS(Java/Others) 262144/131072K(Java/Others)