AcWing 463. 求和
作者:
持灬成功
,
2022-07-20 23:09:51
,
所有人可见
,
阅读 192
***
#include<iostream>
using namespace std;
int a[100005],b[100005],c[100005][2],s[100005][2];
const int mod=10007;
int main()
{
int m,n;
cin>>n>>m;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
{
scanf("%d",&b[i]);
c[b[i]][i%2]++;//分成2m个组,奇数和偶数,颜色,求总个数n
s[b[i]][i%2]=(s[b[i]][i%2]+a[i])%mod;//该组合的a[i]求和
}
int sum=0;
for(int i=1;i<=n;i++)
{
//公式Xi* ( (n-2)* a[i]+求和a[i] );
sum=(sum+i*((c[b[i]][i%2]-2)*a[i]%mod+s[b[i]][i%2])%mod)%mod;
}
cout<<sum<<endl;
return 0;
}