#include <bits/stdc++.h>
using namespace std;
int n,m,k,a[20][20];
int sl[20],sr[20];
int sum;
int b[20];
int sone(int x){
int i = 1;
int cnt = 0;
memset(b,0,sizeof(b));
while(x){
if(x & 1){
b[i] = 1;
cnt++;
}
x >>= 1;
i++;
}
return cnt;
}
bool cmp(int a,int b){
return a > b;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin >> n >> m >> k;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
cin >> a[i][j];
sl[i] += a[i][j];
}
}
if(k >= n || k >= m){
for(int i = 1; i <= n; i++){
sum += sl[i];
}
cout << sum << endl;
}else{
int temp = 1 << n;
int ans = 0;
for(int i = 0; i < temp; i++){
sum = 0;
int l = sone(i),r = k - l;
if(r < 0 || r > m){
continue;
}
for(int j = 1; j <= n; j++){
if(b[j]) sum += sl[j];
}
memset(sr,0,sizeof(sr));
for(int j = 1; j <= n; j++){
for(int k = 1; k <= m; k++){
if(!b[j])
sr[k] += a[j][k];
}
}
sort(sr + 1,sr + 1 + m,cmp);
for(int j = 1; j <= r; j++){
sum += sr[j];
}
ans = max(ans,sum);
}
cout << ans << endl;
}
return 0;
}
矩阵消除游戏
最新推荐文章于 2022-03-22 21:55:26 发布