当前位置: 首页 > news >正文

CF1731D 题解

CF1731D 题解

题面

原题传送门(洛谷)

原题传送门(codeforces)

思路

注意到 \(n\times m\leqslant10^6\),所以本题允许 \(nm\log\min(n,m)\) 的做法。

于是考虑二分答案,每个点的值就是 \([a_{i,j}\geqslant l]\),于是统计二维前缀和,暴力地遍历每一个正方形,只要有一个正方形的和等于正方形内数的个数,则就存在满足题意的此变长的正方形。

于是就做完了。

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath> 
#include<vector>
#define ll long long
using namespace std;
ll n,m;
void write(ll n){if(n<0){putchar('-');write(-n);return;}if(n>9)write(n/10);putchar(n%10+'0');}
ll read(){ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
ll gs(ll x, ll y, ll xx, ll yy, vector<vector<ll> >& s){return s[xx][yy]-s[x-1][yy]-s[xx][y-1]+s[x-1][y-1];}
bool check(ll l, vector<vector<ll> >& a){vector<vector<ll> > s(n+5,vector<ll>(m+5,0));for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+(a[i][j]>=l?1:0);for(int i=l; i<=n; i++) for(int j=l; j<=m; j++){ll x=i-l+1,y=j-l+1;if(gs(x,y,i,j,s)==l*l) return true;}return false;
}
void solve(){n=read();m=read();vector<vector<ll> > a(n+5,vector<ll>(m+5));for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) a[i][j]=read();ll l=1,r=min(n,m)+1;while(l<r){ll mid=l+r>>1;if(check(mid,a)) l=mid+1;else r=mid;}write(l-1);putchar('\n');
}
int main(){ll T=read();while(T--)solve();return 0;
}
http://www.vanclimg.com/news/2839.html

相关文章:

  • G. Unusual Entertainment 题解
  • centos+stress-ng+cgroup完整压力测试方案
  • 2.6 rt-thread实操 SConstruct解析
  • mac配置hdc+adb环境
  • C# Avalonia 07 - LoadFromCommandLine
  • 【译】当JavaScript擅自决定我的一天从早上9点开始
  • IPD项目管理软件对比市面上10款主流工具,哪个最值得入手?
  • C++小白修仙记_LeetCode刷题_1768交替合并字符串
  • MK_各社媒特点_2507
  • 抗体标记服务|FITC/Alexa Fluor偶联|流式细胞与ELISA应用
  • 昨天做什么
  • 第十九日
  • 关于我-About Me
  • 银河麒麟linux硬盘扩容
  • Tesla Financial Report Analysis All In One
  • 亚马逊与马普学会共建AI科学中心
  • 大道至简,初心为本 —— 读《大道至简》之感​
  • Kafka
  • `dev` 分支合并到 `feature` 分支
  • 2025年7月30日
  • C语言基础-分支语句(选择结构)
  • 4.5.5 流水线冒险
  • 记忆排列题目分析
  • ZhengRuiOI 题目整理
  • python deepcopy
  • 我这博客也太唐了
  • 实用指南:图论基本算法
  • python 队列的使用
  • Java核心类——4.包装类型
  • BSC链验证者添加完整流程详解:从StakeHub到Snapshot的完整链路 - 若