解题思路:原本想利用前缀和解决问题,但是看到数据量如此庞大就知道需要进行优化了 核心就是 a mod k == b mod 时,|a-b| mod k==0 利用这个就可以进行优化
注意事项:
参考代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int s[N],a[N],ans;
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,k;
cin>>n>>k;
vector<int> a[k+1];
for(int i=1;i<=n;i++){
cin>>s[i];
s[i]+=s[i-1];
int m=s[i]%k;
if(m==0){ans++;}
ans+=a[m].size();
a[m].push_back(i);
}
cout<<ans<<endl;
return 0;
}
0.0分
1 人评分
C语言训练-立方和不等式 (C语言代码)浏览:742 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:501 |
字符串的输入输出处理 (C语言代码)浏览:924 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:603 |
WU-输入输出格式练习 (C++代码)浏览:1076 |
【计算直线的交点数】 (C语言代码)浏览:1442 |
【偶数求和】 (C语言代码)浏览:430 |
printf基础练习2 (C语言代码)浏览:503 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:679 |
C语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:642 |