对于int和long long的疑惑(玄关)
查看原帖
对于int和long long的疑惑(玄关)
113001
xuhrrr楼主2024/2/27 20:21

我一开始的代码是40pts:

#include <iostream>
#include <cmath>
#include <algorithm>
#define mod 10007
using namespace std;
int n,m;
long long sum[100005][2][4],ans;
int a[100005],b[100005];
// 0指sigma id,1指sigma number,2指sigma number * id,3指sigma sum
int main()
{
    cin >> n >> m;
    for(int i = 1 ; i <= n ; ++i){
        cin >> a[i];
    }
    for(int i = 1 ; i <= n ; ++i){
        cin >> b[i];
        sum[b[i]][i % 2][0] += i % mod;
        sum[b[i]][i % 2][3]++;
        sum[b[i]][i % 2][1] += a[i] % mod;
        sum[b[i]][i % 2][2] += i * a[i] % mod;
    }
    for(int i = 1 ; i <= m ; ++i){
        ans += sum[i][0][0] * sum[i][0][1] % mod + (sum[i][0][3] - 2) % mod * sum[i][0][2] % mod;
        ans += sum[i][1][0] * sum[i][1][1] % mod + (sum[i][1][3] - 2) % mod * sum[i][1][2]  % mod;
    }
    cout << ans % mod << endl;
    return 0;
}

找了半天错实在没看出哪儿错,然后将存放颜色和数字的数组改成long long类型就过了,但是本蒟蒻不理解的地方是int也没有超过题目要求的数据范围啊? 有没有好心的大佬能解释一下qwq

2024/2/27 20:21
加载中...