1 条题解

  • 0
    @ 2025-8-24 21:54:23

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar fstqwq
    **

    搬运于2025-08-24 21:54:23,当前版本为作者最后更新于2017-11-04 01:51:51,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    这里提供的是 std。

    如果需要题解,请参考 ppt,或者其他同学的题解。

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    
    #define N 405
    
    int n, m, K;
    int a[N][N], b[N], cnt[1000005];
    LL ans = 0;
    
    int main() {
        scanf("%d%d%d", &n, &m, &K);
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= m; j++) {
                scanf("%d", a[i] + j);
                (a[i][j] += a[i - 1][j] + a[i][j - 1] + K - a[i - 1][j - 1]) %= K;
            }
        for (int i = 0; i < n; i++) {
            for (int j = i + 1; j <= n; j++) {
                cnt[0] = 1;
                for (int k = 1; k <= m; k++) ans += cnt[(b[k] = a[j][k] + K - a[i][k]) %= K]++;
                for (int k = 1; k <= m; k++) cnt[b[k]] = 0;
            }
        }
        printf("%lld\n", ans);
        return 0;
    }
    
    • 1

    信息

    ID
    1650
    时间
    1000ms
    内存
    250MiB
    难度
    4
    标签
    递交数
    0
    已通过
    0
    上传者