#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct st {
    int value;
    bool visited;
};

bool cmp(st a, st b) {
    return a.value > b.value;
}

int main() {
    int n;
    cin >> n;
    
    vector<vector<st>> matrix(n, vector<st>(n));
    
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cin >> matrix[i][j].value;
            matrix[i][j].visited = false;
        }
    }
    
    long long maxScore = 0;
    
    for (int i = 1; i <= n; i++) {
        for (int j = 0; j < n; j++) {
            sort(matrix[j].begin(), matrix[j].end(), cmp);
            for (int k = 0; k < n; k++) {
                if (!matrix[j][k].visited) {
                    matrix[j][k].visited = true;
                    maxScore += i * matrix[j][k].value;
                    break;
                }
            }
        }
    }
    
    cout << maxScore << endl;
    
    return 0;
}
C++ 取数游戏 - 矩阵最大得分算法实现

原文地址: http://www.cveoy.top/t/topic/f3py 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录