| Run ID | Author | Problem | Lang | Verdict | Score | Time | Memory | Code Length | Submit Time |
|---|---|---|---|---|---|---|---|---|---|
| 43368 | _Yuyuyu_ | 【J】T3 | C++ | Accepted | 100 | 231 MS | 22428 KB | 604 | 2026-10-29 13:04:47 |
#include<bits/stdc++.h> using namespace std; #define int long long int n,p,a[1000005],ans; int sum[1000005],lst[1000005],last; signed main(){ cin>>n>>p; for(int i=1;i<=n;i++){cin>>a[i];a[i]=a[i]%p;} for(int i=1;i<=n;i++){sum[i]=sum[i-1]+a[i];sum[i]%=p;} memset(lst,-1,sizeof(lst)); lst[0]=0; for(int i=1;i<=n;i++){ if(lst[sum[i]]!=-1&&lst[sum[i]]>=last){ last=i; ans++; } lst[sum[i]]=i; } cout<<ans; return 0; } /* 思路: 1:划分成一段一段,使得更多的段的和可以被p整除 */