#P14585. [LNCPC 2025] Entering the unknown

    ID: 14308 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>2025分治辽宁前缀和XCPC单调栈

[LNCPC 2025] Entering the unknown

题目背景

Entering the unknown,\text{Entering the unknown,}

Sending all the poets to the stars,\text{Sending all the poets to the stars,}

Daring to see beyond the manmade,\text{Daring to see beyond the manmade,}

Woe to you who evade the horizon.\text{Woe to you who evade the horizon.}

——Capoo\text{——Capoo}

题目描述

给定一个长度为 nn 的正整数数组,请您求出有多少个非空子数组 *^{\text{*}} 满足:该非空子数组的正整数之和能被出现在该非空子数组中的最大数字 ^{\text{†}} 整除。


*^{\text{*}} 一个数组 aa 是一个数组 bb 的非空子数组,当且仅当 aa 可以通过从 bb 的开头删除零个或者多个数以及从结尾删除零个或者多个数而得到,并且 aa 含有至少一个数。

^{\text{†}} 数字(digit)是指构成数(number)的 0,1,2,3,4,5,6,7,8,90,1,2,3,4,5,6,7,8,9。例如,出现在数组 [213][213] 中的数字有 1,2,31,2,3,最大数字是 33;出现在数组 [2025,11,15][2025,11,15] 中的数字有 0,1,2,50,1,2,5,最大数字是 55

输入格式

每个测试点包含多组测试数据。第一行给定一个整数 T(1T104)T(1 \le T \le 10^4),表示测试数据组数。

对于每组测试数据:
第一行给定一个整数 n(1n105)n(1\le n\le 10^5),表示数组长度。
第二行给定 nn 个正整数 x1,x2,,xnx_1,x_2,\ldots,x_n1xi1091\le x_i\le 10^9),表示数组。

保证在每个测试点中所有测试数据的 nn 的总和不超过 10510^5

输出格式

对于每组测试数据,输出一行一个整数,表示满足题目要求的非空子数组的数量。

2
3
213 12 21 
7
314 880 246 170 493 474 129 

4
7

提示

对于样例的第一组测试数据,非空子数组一共有 66 个:
对于非空子数组 [213][213],正整数之和是 213213,出现的最大数字是 33213213 能被 33 整除,满足题目要求。
对于非空子数组 [12][12],正整数之和是 1212,出现的最大数字是 221212 能被 22 整除,满足题目要求。
对于非空子数组 [21][21],正整数之和是 2121,出现的最大数字是 222121 不能被 22 整除,不满足题目要求。
对于非空子数组 [213,12][213,12],正整数之和是 213+12=225213+12=225,出现的最大数字是 33225225 能被 33 整除,满足题目要求。
对于非空子数组 [12,21][12,21],正整数之和是 12+21=3312+21=33,出现的最大数字是 223333 不能被 22 整除,不满足题目要求。
对于非空子数组 [213,12,21][213,12,21],正整数之和是 213+12+21=246213+12+21=246,出现的最大数字是 33246246 能被 33 整除,满足题目要求。
因此,满足题目要求的非空子数组的数量是 44