这是出给pj的题ccccc

#include <bits/stdc++.h>

#define ll long long
#define INF 2147483647
#define y1 uihaoissa
#define y2 oaioiuwio using namespace std;
const int wx[]= {,,,-},wy[]= {,,-,}; int T,n,m,k,maxh,ltt;
int a[][],sum[][],cal[];
char tow[][][];
bool f[][][];
int cnt[][][];
short pre1[][][],pre2[][][],fl[][][];
bool debug; inline int read() {
int x=;
char ch=getchar();
while(ch<''||ch>'')ch=getchar();
while(ch>=''&&ch<='') {
x=x*+ch-'';
ch=getchar();
}
return x;
} inline int sqr(int x) {
return x*x;
} inline int toedge(int x,int y) {
return min(min(x,y),min(n-x+,m-y+));
} inline int islarge1(int x1,int y1,int y2,int z) {
return pre1[x1][y2][z]-pre1[x1][y1-][z];
} inline int islarge2(int x1,int x2,int y1,int z) {
return pre2[x2][y1][z]-pre2[x1-][y1][z];
} inline int getsum(int x1,int y1,int x2,int y2) {
return sum[x2][y2]-sum[x1-][y2]-sum[x2][y1-]+sum[x1-][y1-];
} int check(int x,int y,int z) {
if (x>) {
int h;
if (cnt[x-][y][z]==-)
switch (tow[x-][y][z]) {
case :
if (fl[x-][y][z]!=z-) {
h=fl[x-][y][z]+;
if (islarge1(x-h,y-h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
}
break;
case :
h=fl[x-][y][z];
if (islarge2(x-h,x+h,y-h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
break;
case :
h=fl[x-][y][z];
if (islarge2(x-h,x+h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
break;
case :
h=fl[x-][y][z]-;
if (islarge1(x+h,y-h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
break;
}
}
if (y>) {
int h;
if (cnt[x][y-][z]==-) {
if (fl[x][y][z]==) tow[x][y][z]=;
switch (tow[x][y-][z]) {
case :
h=fl[x][y-][z];
if (islarge1(x-h,y-h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
break;
case :
if (fl[x][y-][z]!=z-) {
h=fl[x][y-][z]+;
if (islarge2(x-h,x+h,y-h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
}
break;
case :
h=fl[x][y-][z]-;
if (islarge2(x-h,x+h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
break;
case :
h=fl[x][y-][z];
if (islarge1(x+h,y-h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
break;
}
}
}
if (z>) {
if (cnt[x][y][z-]==-) {
int h=fl[x][y][z-];
switch (tow[x][y][z-]) {
case :
if (islarge1(x-h,y-h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
break;
case :
if (islarge2(x-h,x+h,y-h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
break;
case :
if (islarge2(x-h,x+h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
break;
case :
if (islarge1(x+h,y-h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
break;
}
}
}
for (int h=z-; h>=; h--) { //h为中心到该圈的差数
if (cnt[x][y][h+]!=-) break;
if (islarge1(x-h,y-h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
if (islarge2(x-h,x+h,y-h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
if (islarge2(x-h,x+h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
if (islarge1(x+h,y-h,y+h,z-h)>) return fl[x][y][z]=h,tow[x][y][z]=,cnt[x][y][z]=-,;
}
int tot=cal[z]-getsum(x-z+,y-z+,x+z-,y+z-);
return tot>k?:(cnt[x][y][z]=tot,);
} int main() {
for (int i=; i<=; i++)
cal[i]=cal[i-]+(*i-)*(*i-);
T=read();
while (T--) {
maxh=;
memset(cnt,-,sizeof(cnt));
n=read(),m=read(),k=read();
for (int i=; i<=n; i++)
for (int j=; j<=m; j++) {
a[i][j]=read();
sum[i][j]=sum[i-][j]+sum[i][j-]-sum[i-][j-]+a[i][j];
for (int k=,to=toedge(i,j); k<=to; k++) {
f[i][j][k]=(a[i][j]>k);
pre1[i][j][k]=pre1[i][j-][k]+f[i][j][k];
pre2[i][j][k]=pre2[i-][j][k]+f[i][j][k];
}
}
for (int i=; i<=n; i++)
for (int j=; j<=m; j++) {
cnt[i][j][]=-a[i][j];
if (a[i][j]<=) maxh=max(maxh,);
for (int l=max(max(a[i][j],),maxh+),to=toedge(i,j); l<=to;) {
int tmp=check(i,j,l);
if (!tmp) maxh=max(maxh,l),tmp++;
l+=tmp;
}
}
printf("%d\n",maxh);
}
return ;
}

最新文章

  1. 关于JQuery的一个Bug
  2. node03-events
  3. [bzoj2286][Sdoi2011]消耗战(虚树上的DP)
  4. C语言错误之--初始值(低级错误)
  5. poj 3694 pku 3694 Network tarjan求割边 lca
  6. SharePoint咨询师之路:备份和恢复系列三 - 备份web和服务应用程序
  7. cmd命令行指定系统延迟关机时间
  8. HDOJ2013蟠桃记
  9. http://wenku.baidu.com/link?url=UGoPtZviipHzi5SDIlGx6hPFWAHTPLFXcZ7ieD15JMd81DEHqjehvphVMhqELmOK4qXR74dTT9nW8VBoApBc7Kfb1ZWrNF_i24fY1YRHVki
  10. 用document.title=“xxx”动态修改title,在ios的微信下面不生效
  11. react-native-router-flux 下部导航
  12. jquery中DOM的操作方法
  13. jsoneditor显示Json data
  14. 3.3. 轻量级的迁移方式(Core Data 应用程序实践指南)
  15. 仿淘宝左侧菜单导航栏纯Html + css 写的
  16. Java IO流--练习2
  17. 编写高性能的Lua代码
  18. [JDK8] Stream
  19. Python基础_列表 list
  20. Thing in java 第四章,控制执行流程,练习题答案

热门文章

  1. golang设置运行的核数
  2. S03_CH12_基于UDP的QSPI Flash bin文件网络烧写
  3. Typora 的使用
  4. java——内存中的数组
  5. Http 与 Https区别
  6. 怎样手写实现 new 命令的功能
  7. (三)Struts之Action类基础(一)
  8. java01_简介_开发环境
  9. 清北学堂-DAY2-数论专题-中国剩余定理(CRT)
  10. 【shell脚本】$ 在shell脚本中的使用