bzoj5085: 最大
2024-08-31 01:45:49
暴力是4方的,开始我只3方(扫描的时候更新当前最大)
二分+暴力可以做到m^2logMAX
二分答案,暴力枚举可行的两个位置形成一段,对于段,最多只会有m^2种情况。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std; int n,m,a[][],bef[];
bool v[][];
bool check(int mid)
{
memset(v,false,sizeof(v));
for(int i=;i<=n;i++)
{
int last=;
memset(bef,,sizeof(bef));
for(int j=;j<=m;j++)
{
if(!(a[i][j]<mid))
{
for(int k=last;k;k=bef[k])
{
if(v[k][j])return true;
v[k][j]=true;
}
bef[j]=last;
last=j;
}
}
}
return false;
}
int main()
{
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
int mmin=,mmax=;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
scanf("%d",&a[i][j]);
mmax=max(mmax,a[i][j]);
mmin=min(mmin,a[i][j]);
} int l=mmin,r=mmax,ans;
while(l<=r)
{
int mid=(l+r)/;
if(check(mid))
{
ans=mid;
l=mid+;
}
else r=mid-;
}
printf("%d\n",ans);
return ;
}
最新文章
- 页面加载完后自动执行一个方法的js代码
- OpenGL渲染管线
- C语言实现penna模型
- php连接和操作mysql数据库
- lievent源码分析:evbuffer
- Qt程序启动画面播放(gif与swf两种动画格式)
- HBase中的备份和故障恢复方法
- 实现函数 isInteger(x) 来判断 x 是否是整数
- phpcms 缓存
- BestCoder Round#11div2 1003
- 云计算——Google App Eng…
- Basic Skill
- R语言高性能编程,优化(一)
- 【原创】Webpack构建中hash的优化
- 软件补丁问题(SPFA+位运算)
- CSS 快速学习
- PPT模板中的”书签”
- 算法 - Catalan数 (卡特兰)
- docker Dockerfile 创建镜像
- C语言文法推导