比赛 |
20191022轻松模拟测试 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Rotate Columns |
最终得分 |
100 |
用户昵称 |
HYOI_ingn |
运行时间 |
1.635 s |
代码语言 |
C++ |
内存使用 |
13.71 MiB |
提交时间 |
2019-10-22 19:24:47 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int maxn=1010;
int read(){
int x=0,w=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*w;
}
int t,n,m;
int a[10][1000],mov[100];
int to[maxn],ans;
struct node{
int id,val;
}jp[500];
void check(){
int chk[5];memset(chk,0,sizeof(chk));
for(int i=1;i<=n;i++){
for(int j=1;j<=min(7,m);j++){
chk[(i+mov[j])%n]=max(chk[(i+mov[j])%n],a[i][jp[j].id]);
}
}
int tmp=0;
for(int i=0;i<n;i++)tmp+=chk[i];ans=max(ans,tmp);
}
void dfs(int now){
if(now>7||now>m){
check();return;
}
for(int i=0;i<n;i++){
mov[now]=i;dfs(now+1);
}
}
bool cmp(node a,node b){
return a.val>b.val;
}
int main(){
freopen("happygameT1.in","r",stdin);
freopen("happygameT1.out","w",stdout);
t=read();
while(t--){
n=read(),m=read();
memset(mov,0,sizeof(mov));
memset(jp,0,sizeof(jp));
ans=0;
int cnt=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]=read();
jp[j].val=max(jp[j].val,a[i][j]);
jp[j].id=j;
}
}
sort(jp+1,jp+m+1,cmp);
dfs(1);
cout<<ans<<"\n";
}
}