随笔 - 531  文章 - 0  评论 - 3  阅读 - 10215 

 

n×n环状方阵上的最大子矩阵和。

 

构造 2*n *( 2*n) 的正方形

 

 求余的一个操作 x''=  (x-1)%n+1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=300;
 
int a[N][N],s[N][N],n;
 
 int S(int x1,int y1,int x2,int y2){
    return s[x2][y2]+s[x1-1][y1-1]-
    s[x1-1][y2]-s[x2][y1-1];
 }
 void sov(){
    int i,j;
    memset(s,0,sizeof s);
    cin>>n;
    for(i=1;i<=n;++i)
     for(j=1;j<=n;++j) cin>>a[i][j];
     
    for(i=1;i<=2*n;++i)
     for(j=1;j<=2*n;++j){
        a[i][j]=a[(i-1)%n+1][(j-1)%n+1];
     }
    for(i=1;i<=2*n;++i)
     for(j=1;j<=2*n;++j){
        s[i][j]=s[i-1][j]+s[i][j-1]-
        s[i-1][j-1]+a[i][j];
     
     int ans=0;
     for(i=1;i<=2*n;++i)
      for(j=1;j<=2*n;j++)
        for(int k=i;k<=min(i+n-1,2*n);k++)
         for(int l=j;l<=min(j+n-1,2*n);l++){
            ans=max(ans,S(i,j,k,l));
         }
     cout<<ans<<endl;
 }
 signed main(){
    int tes; cin>>tes;
    while(tes--)
    sov();
 }

 

posted on   towboat  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示