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

在这里插入图片描述

题意:

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

  1. n n 个数都不相同,那么肯定会出现 a % m = = b % m a\%m==b\%m 这样的两个数,所以答案就是 0 0 .
  2. n n 个数有相同的,那 a b |a-b| 存在为 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;
}

发布了704 篇原创文章 · 获赞 420 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_43627087/article/details/104648784
今日推荐