NBUT 1538 Submartix

来源:互联网 发布:再向虎山行gotv源码ts 编辑:程序博客网 时间:2024/06/06 02:44
  • [1538] K-Submartix


    比较笨,写出了O(n^4),果断超时。看了队友的代码,优化到了O(n^3)。

    #include<cstdio>#define areaSum sum[ex][ey]-sum[ex][sy-1]-sum[sx-1][ey]+sum[sx-1][sy-1]const int N=252;int a[N][N],row[N][N],sum[N][N];//row第i行前j个和,sum前i行前j列和int main(){int n,m,key;while(~scanf("%d %d %d",&n,&m,&key)){for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&a[i][j]);row[i][j]=row[i][j-1]+a[i][j];sum[i][j]=sum[i-1][j]+row[i][j];}int areaMin=1e9;for(int sx=1;sx<=n;sx++){for(int ex=sx;ex<=n;ex++){//横向一条for(int sy=1,ey=1;sy<=m;sy++){//推进查找int value=areaSum;while(value<key){ey++;if(ey>m) break;value=areaSum;}if(value<key) break;int area=(ex-sx+1)*(ey-sy+1);if(area<areaMin)areaMin=area;}}}if(areaMin==1e9)printf("-1\n");elseprintf("%d\n",areaMin);}return 0;}


0 0
原创粉丝点击