题解 点赞
2025-02-03 22:12:00
发布于:安徽
1阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
const int maxN = 100010,moD = 10007;
long long ans=0,n,m,a[maxN],c[maxN],sr[maxN][2],sa[maxN][2],s[maxN][2],sq[maxN][2];
int main()
{
cin>>n>>m;
for (int i=1; i<=n; i++) cin>>a[i];
for (int i=1; i<=n; i++) cin>>c[i];
for (int i=1; i<=n; i++)
{
int p=i&1,ci=c[i];
s[ci][p]++;
if(s[ci][p]>1) ans+=(a[i]*sr[ci][p])%moD+(i*sa[ci][p])%moD+sq[ci][p]+((s[ci][p]-1)*i*a[i]%moD);
ans%=moD;
sr[ci][p]+=i;
sa[ci][p]+=a[i];
sq[ci][p]+=i*a[i];
}
ans%=moD;
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个