网站建设课程的感受,重庆双福建设开发有限公司网站,wordpress 图片点读插件,打开手机网站速度慢给定一个长度为N的数列#xff0c;A1, A2, … AN#xff0c;如果其中一段连续的子序列Ai, Ai1, … Aj(i j)之和是K的倍数#xff0c;我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗#xff1f; 输入第一行包含两个整数N和K。(1 N, K A1, A2, … AN如果其中一段连续的子序列Ai, Ai1, … Aj(i j)之和是K的倍数我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗 输入第一行包含两个整数N和K。(1 N, K 100000) 以下N行每行包含一个整数Ai。(1 Ai 100000) 输出输出一个整数代表K倍区间的数目。 例如 输入 5 2 1 2 3 4 5 程序应该输出 6 资源约定 峰值内存消耗含虚拟机 256M CPU消耗 2000ms 通过前缀和加取模 然后要知道一个东西就是只要前缀出现同样的就得累加 也就是一个累计数组。 而且累计数组考虑的不包括本身所以最后要吧取摸为零的加进去。 1 #include iostream2 #define N 1000003 #define ll long long int4 using namespace std;5 ll an[N], bn[N];6 int n, k;7 8 int main(){9 cin n k;
10 for(int i 1; i n; i ){
11 cin an[i];
12 an[i] % k;
13 }
14 for(int i 1; i n; i){
15 an[i] (an[i] an[i-1])%k;
16 }
17 ll sum 0;
18 for(int i 1; i n; i){
19 sum (bn[an[i]]);
20 }
21 cout sum bn[0] endl;
22 return 0;
23 } 转载于:https://www.cnblogs.com/zllwxm123/p/10578428.html