|

楼主 |
发表于 2025-5-11 13:01:23
|
显示全部楼层
#include <bits/stdc++.h>
using namespace std;
#define MAXM 100000
#define MAXN 100000
#define MOD 10007
#define int long long
int cnt[MAXM + 5][3];
int number[MAXN], color[MAXN];
int nq[MAXM + 5][3], n[MAXM + 5][3], q[MAXM + 5][3];
signed main() {
int n1, m;
cin >> n1 >> m;
for (int i = 1; i <= n1; i++) {
cin >> number[i];
number[i] %= MOD;
}
for (int i = 1; i <= n1; i++) {
cin >> color[i];
}
int ans = 0;
for (int i = 1; i <= n1; i++) {
int oe = i % 2 + 1; //奇2偶1
int c = color[i];
ans = (ans + ((nq[c][oe] % MOD) + ((n[c][oe] % MOD) * (number[i] % MOD)) % MOD + ((i % MOD) *
(q[c][oe] % MOD)) % MOD + ((i % MOD) * (number[i] % MOD) * (cnt[c][oe] % MOD)) % MOD) % MOD) % MOD;
cnt[c][oe]++;
n[c][oe] = (n[c][oe] + i) % MOD;
q[c][oe] = (q[c][oe] + number[i]) % MOD;
nq[c][oe] = ((nq[c][oe] % MOD) + (((i % MOD) * (number[i] % MOD)) % MOD)) % MOD;
}
cout << ans % MOD;
return 0;
} |
|