0%

The 21st Hunan Provincial Collegiate Programming Contest——2025-湖南省赛-H. Prime Segments

题目大意

题目描述
给定一个长度为 nn 的正整数序列 aa
求该序列中有多少个连续子段的和为素数。换言之,计算满足 1lrn1 \le l \le r \le ni=lrai\sum_{i=l}^r a_i 为素数的数对 (l,r)(l, r) 的数量。

输入格式
第一行包含一个整数 TT1T1041 \le T \le 10^4),表示测试用例的数量。
每个测试用例包含两行:
第一行为一个整数 nn1n1061 \le n \le 10^6),表示序列的长度。
第二行为 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1061 \le a_i \le 10^6,且单组测试数据内 ai106\sum a_i \le 10^6),表示序列的元素。
保证同一个文件内所有测试用例的 nn 的总和不超过 10610^6,所有测试用例的 ai\sum a_i 的总和不超过 10610^6

输出格式
对于每个测试用例,输出一行一个整数,表示和为素数的子段数量。

样例

输入:

1
2
3
4
5
2
4
1 2 3 4
12
1 1 4 5 1 4 1 9 1 9 8 10

输出:

1
2
5
16

样例解释
在第一个样例中,满足条件的 (l,r)(l,r) 数对如下:
l=1,r=2l=1, r=2:该子段的和为 33
l=2,r=2l=2, r=2:该子段的和为 22
l=2,r=3l=2, r=3:该子段的和为 55
l=3,r=3l=3, r=3:该子段的和为 33
l=3,r=4l=3, r=4:该子段的和为 77

思路讲解

AC代码

心路历程(WA,TLE,MLE……)