Codeforces 1305 C. Kuroni and Impossible Calculation(同余?鸽巢?)

在这里插入图片描述

题意:

题意很简单,就是求那个累积的值,昨晚卷积了半天发现 m m m 只有 1000 1000 1000,就可以知道只要 n > 1000 n>1000 n>1000 必定输出 0 0 0 或者 n > m n>m n>m 也会输出 0 0 0.
a % m = = b % m a\%m==b\%m a%m==b%m 那么有 ∣ a − b ∣ % m = = 0 |a-b|\%m==0 ab%m==0,所以当 n > m n>m n>m会有两种情况:

  1. n n n 个数都不相同,那么肯定会出现 a % m = = b % m a\%m==b\%m a%m==b%m 这样的两个数,所以答案就是 0 0 0.
  2. n n n 个数有相同的,那 ∣ a − b ∣ |a-b| ab存在为 0 0 0 的,答案就是 0 0 0

AC代码:

const int N = 2e5 + 10;
int n, m;
int res, tmp, cnt;
int a[N];

int main()
{
    sdd(n, m);
    rep(i, 1, n)
        sd(a[i]);
    if (n >= 2000)
        puts("0");
    else
    {
        ll ans = 1;
        rep(i, 1, n)
        {
            rep(j, i + 1, n)
            {
                ans = abs(a[i] - a[j]) % m * ans % m;
                ans = ans % m;
            }
        }
        pld(ans);
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值