柑橘味砖头


私信TA

用户名:uq_73696371690

访问量:1517

签 名:

等  级
排  名 8316
经  验 1240
参赛次数 0
文章发表 17
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:原本想利用前缀和解决问题,但是看到数据量如此庞大就知道需要进行优化了 核心就是 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分

2 人评分

  评论区

  • «
  • »