悬关

P1719 最大加权矩形

首先,是子矩阵,不一定一(1,1)开头
by yh2022mayu @ 2024-03-17 19:06:18


所以要四重枚举
by yh2022mayu @ 2024-03-17 19:10:37


@[yh2022mayu](/user/541786) ```cpp #include<bits/stdc++.h> using namespace std; int sa[200][200],n,a,maxn; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ scanf("%d",&a); sa[i][j]=sa[i-1][j]+sa[i][j-1]-sa[i-1][j-1]+a; } cout<<endl; } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ for(int k=0;k<=i;k++){ for(int q=0;q<=j;q++){ if(i==1&&j==1&&k==0&&q==0) maxn=sa[i][j]-sa[k][q]; if(sa[i][j]-sa[k][q]>maxn) maxn=sa[i][j]-sa[k][q]; } } } } cout<<maxn; return 0; } ```
by lucy2012 @ 2024-03-17 19:33:12


对的
by yh2022mayu @ 2024-03-17 19:35:31


(所以为什么11行要换行
by yh2022mayu @ 2024-03-17 19:36:01


``` #include<bits/stdc++.h> using namespace std; int sa[200][200],n,a,maxn; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ scanf("%d",&a); sa[i][j]=sa[i-1][j]+sa[i][j-1]-sa[i-1][j-1]+a; } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ for(int k=0;k<i;k++){ for(int q=0;q<j;q++){ if(i==1&&j==1&&k==0&&q==0) maxn=sa[i][j]+sa[k][q]-sa[i][q]-sa[k][j]; if(sa[i][j]+sa[k][q]-sa[i][q]-sa[k][j]>maxn) maxn=sa[i][j]+sa[k][q]-sa[i][q]-sa[k][j]; } } } } cout<<maxn; return 0; } ```
by yh2022mayu @ 2024-03-17 19:46:35


@[lucy2012](/user/1252442)
by yh2022mayu @ 2024-03-17 19:54:51


@[lucy2012](/user/1252442) 你在11行为什么要换行,这不也是我前面说的调试代码么?
by lutaoquan2012 @ 2024-03-17 20:24:52


@[yh2022mayu](/user/541786) @[lutaoquan2012](/user/952033) 。。。谢了
by lucy2012 @ 2024-03-18 18:00:40


|