1947. 最大兼容性评分和
思路:方法一,对老师的顺序进行全排列,学生的顺序固定。全排列用到next-permutation()函数,时间复杂度为0(m!)。然后再计算每个排列里,老师和学生的兼容性评分,这里我们可以预先处理一个数组g[i][j],表示学生i和老师j的兼容性评分,这样就避免了大量的重复计算。最终的时间复杂度为0(m * m * n+m! * m )。
class Solution {
public:
int maxCompatibilitySum(vector<vector<int>>& students, vector<vector<int>>& mentors) {
int m=students.size(),n=students[0].size();
vector<vector<int>> g(m,vector<int>(m,0));
for(int i=0;i<m;i++){
for(int j=0