比赛 |
20191022轻松模拟测试 |
评测结果 |
AAAAATTTTT |
题目名称 |
Rotate Columns |
最终得分 |
50 |
用户昵称 |
jekyll |
运行时间 |
5.060 s |
代码语言 |
C++ |
内存使用 |
13.67 MiB |
提交时间 |
2019-10-22 19:32:11 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int maxn=105;
inline int read(){
register int x=0,w=1,ch=getchar();
for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')w=-1;
for(;ch>='0'&&ch<='9';ch=getchar())x=x*10+ch-48;
return w*x;
}
int n,m,ans;
int a[15][maxn],mx[maxn],id[maxn];
int mov[maxn];
inline bool cmp(const int &a,const int &b){
return mx[a]>mx[b];
}
inline void chkmx(){
int now[4]={0,0,0,0};
for(int j=1;j<=min(m,4);j++)
for(int i=0;i<n;i++)
now[(i+mov[j])%n]=max(now[(i+mov[j])%n],a[i][id[j]]);
int res=0;
for(int i=0;i<n;i++)res+=now[i];
ans=max(ans,res);
}
void dfs(int now){
if(now>4||now>m){
chkmx();return ;
}
for(int i=0;i<n;i++){
mov[now]=i;dfs(now+1);
}
}
int main(){
freopen("happygameT1.in","r",stdin);
freopen("happygameT1.out","w",stdout);
for(int T=read();T--;){
n=read(),m=read();
memset(mx,0,sizeof mx);
for(int i=0;i<n;i++)
for(int j=1;j<=m;j++)a[i][j]=read(),mx[j]=max(mx[j],a[i][j]);
for(int i=1;i<=m;i++)id[i]=i;
sort(id+1,id+1+m,cmp);
ans=0;
dfs(1);
cout<<ans<<'\n';
}
}
/*
1
4 2
8 7
5 1
2 6
4 3
*/