最好看的一集
2025-06-10 21:34:41
发布于:广东
6阅读
0回复
0点赞
我们得了解如何计算得分。
显然,
,其中 为要计算得分的数。
所以我们只需要预处理出每种颜色的 即可。
注意把奇偶分开。
#include <iostream>
#include <cstdio>
#define int long long
using namespace std;
const int mod = 10007;
int a[100005], b[100005];
int sum[200005], sumx[200005], sumax[200005], sumxax[200005];
int n, m, ans;
signed main(){
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> n >> m;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
for(int i = 1; i <= n; i++){
cin >> b[i];
if(i % 2 == 0) b[i] += n;//奇偶分开
}
for(int i = 1; i <= n; i++){
ans += sumxax[b[i]] + a[i] * sumx[b[i]] + i * sumax[b[i]] + i * a[i] * sum[b[i]];
sum[b[i]]++;
sumx[b[i]] += i;
sumax[b[i]] += a[i];
sumxax[b[i]] += i * a[i];
ans %= mod;
sum[b[i]] %= mod;
sumx[b[i]] %= mod;
sumax[b[i]] %= mod;
sumxax[b[i]] %= mod;
}
cout << ans;
return 0;
}
全部评论 1
%%%
5天前 来自 江苏
0
有帮助,赞一个