简单码了一下,高精或者int128之后写,问题是为啥全都RE了
#include<iostream>
#include<cmath>
using namespace std;
long long f[30][30],a[30][30];
long long ans[30];long long leans=0;int n,m;
long long guiling()
{
for(int j=1;j<=m;j++)
{
for(int i=1;i<=j;i++)
{
f[i][j]=0;
}
}
}
long long cheng(int k)
{
long long l;
l=1<<k;
return l;
}
long long dp(int k)
{
guiling();
ans[k]=0;
for(int i=1;i<=m;i++)
{
for(int j=m;j>=i;j--)
{
f[i][j]=max(f[i-1][j]+a[k][i-1]*cheng(m-j+i-1),f[i][j]);
f[i][j]=max(f[i][j+1]+a[k][j+1]*cheng(m-j+i-1),f[i][j]);
}
}
for(int i=1;i<=m;i++)
{
ans[k]=max(ans[k],f[i][i]+a[k][i]*cheng(m));
}
leans=leans+ans[k];
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=m;i++)
{
dp(i);
}
cout<<leans;
}