w思路一样为什么全WA。。。。
查看原帖
w思路一样为什么全WA。。。。
1587307
_Yamada_Ryo楼主2025/1/26 16:16
#include <stdio.h>
#define int long long
const int mod = 1e9+7;
int Cn2(int n)
{
    if (n == 2)
    {
        return 1;
    }
    return n * (n - 1) / 2 % mod;
}
signed main()
{
    int n, sum = 0, max = 0;
    scanf("%lld", &n);
    int num[5001] = {0}, input[n];
    for (int i = 1; i <= n; i++)
    {
        scanf("%lld", &input[i]);
        num[input[i]]++; // 计算频率时注意数组从1开始读入!!!!!
        if (max < input[i])
        {
            max = input[i];
        }
    }
    for (int i = 2; i <= max; i++)
    {
        if (num[i] >= 2)
        {
            for (int j = 1; j <= i / 2; j++)
            {
                if (!num[j] && !num[i - j] && j != i - j)
                {
                    sum += Cn2(num[i]) * num[i] * num[i - j] % mod;
                }
                if (i % 2 == 0 && num[i / 2] >= 2)
                {
                    sum += Cn2(num[i]) * Cn2(num[i / 2]) % mod;
                }
                sum %= mod;
            }
        }
    }
    printf("%lld", sum);
    return 0;
}
2025/1/26 16:16
加载中...