求助 80分 错6,7点
查看原帖
求助 80分 错6,7点
1073277
zxkqwq楼主2024/6/5 19:24
#include<cstdio>
//#include<stdio.h>
#define md 10007
int color[100010][2][4] = { 0 };
int sbsr[100010];
int main() {
    int n, m;
    //freopen("P2671_6.in", "r", stdin);
    scanf("%d %d", &n, &m);

    for (int i = 0; i < n; i++) {
        scanf("%d", sbsr + i);
        sbsr[i] %= md;
    }
    int cl1;
    for (int i = 0; i < n; i++) {
        scanf("%d", &cl1);
        color[cl1][i & 1][0] += (i+1)%md;
        color[cl1][i & 1][0] %=md;  
        color[cl1][i & 1][1] += sbsr[i] % md;
        color[cl1][i & 1][1] %=md;  
        color[cl1][i & 1][2] += (((i+1)%md)*(sbsr[i]%md))%md;
        color[cl1][i & 1][2] %=md;
        color[cl1][i & 1][3] ++;
    }
    int ans = 0;

    for (int i = 1; i <= m; i++) {
        for (int j = 0; j < 2; j++) {
            switch (color[i][j][3])
            {
            case 0:
                break;
            case 1:
                break;
            case 2:
                ans += (color[i][j][0] * color[i][j][1]) % md;
                ans %= md;
            default:
                ans += (color[i][j][0] * color[i][j][1]) % md;
                ans %= md;       
                ans += (((color[i][j][3]-2)%md) * (color[i][j][2] % md))%md;
                ans %= md;
                break;
            }

        }
    }
    printf("%d", ans%md);
}
2024/6/5 19:24
加载中...