题意:

给一个n*n的正方形,第一行和最后一行粘在一块,第一列和最后一列粘在一块,求这个环面上的最大的子矩形;

思路:

直接暴力是O(n^6)的复杂度,可以把前缀和求出来,这样就可以只用枚举四条边界就好了;复杂度降为了O(n^4)

AC代码:

#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath> using namespace std; #define For(i,j,n) for(int i=j;i<=n;i++)
#define mst(ss,b) memset(ss,b,sizeof(ss)); typedef long long LL; template<class T> void read(T&num) {
char CH; bool F=false;
for(CH=getchar();CH<'0'||CH>'9';F= CH=='-',CH=getchar());
for(num=0;CH>='0'&&CH<='9';num=num*10+CH-'0',CH=getchar());
F && (num=-num);
}
int stk[70], tp;
template<class T> inline void print(T p) {
if(!p) { puts("0"); return; }
while(p) stk[++ tp] = p%10, p/=10;
while(tp) putchar(stk[tp--] + '0');
putchar('\n');
} const LL mod=1e9+7;
const double PI=acos(-1.0);
const int inf=1e9;
const int N=3e6+10;
const int maxn=3e6;
const double eps=1e-10; int a[152][152],up[152][152];
int n,m,sum[153]; int main()
{
int t;
read(t);
while(t--)
{
read(n);;
For(i,1,n)
For(j,1,n)
{
read(a[i][j]);
a[i][j+n]=a[i+n][j]=a[i+n][j+n]=a[i][j];
}
For(i,1,2*n)
For(j,1,2*n)
up[i][j]=up[i-1][j]+a[i][j];
int ans=-inf;
For(i,1,n)
{
For(j,i,i+n-1)
{
For(k,1,2*n)sum[k]=sum[k-1]+up[j][k]-up[i-1][k];
For(l,1,n)
For(r,l,l+n-1)
ans=max(ans,sum[r]-sum[l-1]);
}
}
cout<<ans<<endl; }
return 0;
}

  

最新文章

  1. eclipse如何导入项目
  2. windows 注册表编程
  3. phonegap 退出确认
  4. PRMonitor,学习SSDT HOOK的好例子,学习的内核HOOK的好例子(注意右边有一堆类似的例子)
  5. 【ThinkingInC++】52、函数内部的静态变量
  6. windows下一个erlang包装镜像启动
  7. rest-work-eat-study-rest-work-eat or rest-rest-work-work-eat-eat..
  8. 解决网站出现GET .woff 404 (Not Found)的问题
  9. myeclipse无法导入项目
  10. 一些常用的CSS样式
  11. Not posting notification with icon==0问题解决
  12. django的templatetags
  13. generatorConfiguration详解
  14. 解决myeclipse/eclipse创建或导入maven工程时引发的问题
  15. Exception occurred while processing this request, check the log for more information!安装ActiveMq-5.14.1 配置安全验证报错解决
  16. UESTC - 1057 秋实大哥与花 线段树模板题
  17. 解决Sublime包管理package control 报错 There are no packages available for installation
  18. Bracket Sequences Concatenation Problem括号序列拼接问题(栈+map+思维)
  19. C++ 进阶5 拷贝构造 深度复制 运算符重载
  20. ioc autofac简单示例

热门文章

  1. [OS X实用技巧]机器人应用:一键将图片转换为PNG/JPEG/TIFF
  2. asp.net core系列 65 正反案例介绍SOLID原则
  3. sqlite 常用操作
  4. 《深入理解mybatis原理》 Mybatis初始化机制详解
  5. 区间DP与贪心算法的联系(uav Cutting Sticks &amp;amp;&amp;amp; poj Fence Repair(堆的手工实现))
  6. C#中使用byte[]数据,生成Bitmap
  7. iOS文件的管理(添加,删除,拷贝,移动)
  8. C#语言循环语句for嵌套
  9. NOI 2014简要题解
  10. NS3网络仿真(7): Wifi节点