o(n^2*m)暴力真的卡不过去吗,我试了m=2都过不了,要特判。
#include<bits/stdc++.h>
using namespace std;
int n,m,a[5][100001];
long long ans;
inline int read() {
char c=getchar();
int x=0;
while(c<'0'){
c=getchar();
}
while(c>='0'){
x=(x<<3)+(x<<1)+c-'0';
c=getchar();
}
return x;
}
int main(){
cin>>m>>n;
if(m==2){
for(int j=1;j<=n;++j){
cin>>a[1][j];
ans+=a[1][j];
}
for(int j=1;j<=n;++j){
cin>>a[2][j];
ans+=a[2][j];
}
ans*=2ll*n;
cout<<ans;
}
else if(m==3){
for(int j=1;j<=n;++j){
a[1][j]=read();
}
for(int j=1;j<=n;++j){
a[2][j]=read();
}
for(int j=1;j<=n;++j){
a[3][j]=read();
}
for(register int i=1;i<=n;++i){
for(register int j=i+1;j<=n;++j){
int maxx=a[1][i]+a[1][j],minn=maxx;
if(a[2][i]+a[2][j]>maxx){
maxx=a[2][i]+a[2][j];
}
if(a[3][i]+a[3][j]>maxx){
maxx=a[3][i]+a[3][j];
}
if(a[2][i]+a[2][j]<minn){
minn=a[2][i]+a[2][j];
}
if(a[3][i]+a[3][j]<minn){
minn=a[3][i]+a[3][j];
}
ans+=maxx<<1;
ans+=minn<<1;
}
}
for(register int i=1;i<=n;++i){
int maxx=a[1][i]<<1,minn=maxx;
if(a[2][i]+a[2][i]>maxx){
maxx=a[2][i]+a[2][i];
}
if(a[3][i]+a[3][i]>maxx){
maxx=a[3][i]+a[3][i];
}
if(a[2][i]+a[2][i]<minn){
minn=a[2][i]+a[2][i];
}
if(a[3][i]+a[3][i]<minn){
minn=a[3][i]+a[3][i];
}
}
cout<<ans;
}
else{
for(int i=1;i<=m;++i){
for(int j=1;j<=n;++j){
a[i][j]=read();
}
}
for(register int i=1;i<=n;++i){
for(register int j=i+1;j<=n;++j){
int maxx=a[1][i]+a[1][j],minn=maxx;
if(a[2][i]+a[2][j]>maxx){
maxx=a[2][i]+a[2][j];
}
if(a[3][i]+a[3][j]>maxx){
maxx=a[3][i]+a[3][j];
}
if(a[4][i]+a[4][j]>maxx){
maxx=a[4][i]+a[4][j];
}
if(a[2][i]+a[2][j]<minn){
minn=a[2][i]+a[2][j];
}
if(a[3][i]+a[3][j]<minn){
minn=a[3][i]+a[3][j];
}
if(a[4][i]+a[4][j]<minn){
minn=a[4][i]+a[4][j];
}
ans+=maxx<<1;
ans+=minn<<1;
}
}
for(register int i=1;i<=n;++i){
int maxx=a[1][i]+a[1][i],minn=maxx;
if(a[2][i]+a[2][i]>maxx){
maxx=a[2][i]+a[2][i];
}
if(a[3][i]+a[3][i]>maxx){
maxx=a[3][i]+a[3][i];
}
if(a[4][i]+a[4][i]>maxx){
maxx=a[4][i]+a[4][i];
}
if(a[2][i]+a[2][i]<minn){
minn=a[2][i]+a[2][i];
}
if(a[3][i]+a[3][i]<minn){
minn=a[3][i]+a[3][i];
}
if(a[4][i]+a[4][i]<minn){
minn=a[4][i]+a[4][i];
}
ans+=maxx;
ans+=minn;
}
cout<<ans;
}
}