求 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(); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!