1 条题解

  • 0
    @ 2026-5-29 15:42:22
    #include<bits/stdc++.h>
    using namespace std;
    using ll = long long;
    
    int main(){
        int n,m;cin >> n >> m;
        vector<vector<int>> d(m,vector<int>(m)),c(n,vector<int>(n));
        
        for (int i = 0; i < m; i++)for (int j = 0; j < m; j++)cin >> d[i][j];
        for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)cin >> c[i][j],c[i][j]--;
    
        vector<vector<ll>> f(3,vector<ll>(m,0));
    
        for (int i = 0; i < n; i++)for (int j = 0; j < n; j++){
            for (int k = 0; k < m; k++){
                f[(i+j)%3][k] += d[c[i][j]][k];
            }
        }
    
        ll ans = 1e18;
        for (int i = 0; i < m; i++){
            for (int j = 0; j < m; j++){
                for (int k = 0; k < m; k++){
                    if (i!=j && j!=k && k!=i)ans = min(ans, f[0][i]+f[1][j]+f[2][k]);
                }
            }
        }
    
        cout << ans << endl;
    }
    
    • 1

    信息

    ID
    11555
    时间
    2000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    4
    已通过
    2
    上传者