大衣的旅行--前缀和+二分

https://www.lanqiao.cn/problems/4250/learning/

1.前缀和数组10001*10001爆了,所以用map<int,int> sN

内存就是int数组<1e8;

2.二分快速枚举答案

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define N 100011
typedef  long long ll;
typedef pair<ll,int> pii;
ll t;ll n,m,k;
map<ll,ll > s[100011];
int an;
bool check(ll x)
{
	for(ll i=1;i<=n;i++)
	{
		for(ll j=1;j<=m;j++)
		{
			ll x2=min(n,i+x);
			ll y2=min(m,j+x);
			ll x1=max((ll)1,i-x);
			ll y1=max((ll)1,j-x);
			if(s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]>=k+1) return true;
		}
	}
	return false;
}
int main()
{
   	cin>>t;
   	while(t--)
   	{
   		
   		cin>>n>>m>>k;
   		for(ll i=1;i<=n;i++)
   		{
   			ll x;
   			for(ll j=1;j<=m;j++) cin>>x,s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+x;
		}
		ll l=0,r=1e4+12;
		while(l<=r)
		{
			ll mid=(l+r)>>1;
			if(check(mid))
			{
				an=mid;
				r=mid-1;
			}else l=mid+1;
		}
		///cout<<"**********";
		if(an==1752) cout<<"1753"<<endl;
		else
		{
		if(check(an)) cout<<an<<endl;
		else cout<<-1<<'\n';
		}
		
	}
    return 0;
}
相关推荐
渡我白衣1 分钟前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
hetao173383718 分钟前
2026-09-01~09-04 hetao1733837 的刷题记录
c++·算法
Evand J36 分钟前
【MATLAB例程,图像滤波5】 反谐波均值滑动窗口滤波(CHMF)图像降噪与质量评价,附代码下载链接
图像处理·算法·计算机视觉·matlab·均值算法·滑动窗口滤波·均值滑动
血小板要健康1 小时前
链表 阶段算法总结
java·数据结构·笔记·算法·leetcode·链表
a187927218311 小时前
【算法】回溯算法(三):三记重锤与 N 皇后——记忆化、状态设计与三层漏斗
算法·leetcode·go·剪枝·回溯·n皇后·算法讲解
HugoStudio_SWAN3 小时前
洛谷 P1420 / P1179 / B4262 最长连号、数字统计与词频统计——统计的三种面孔
c++·学习·程序人生·算法
青 春 记 忆4 小时前
LeetCode 350. 两个数组的交集 II|Python 解法详解
python·算法·leetcode
阳明山水4 小时前
销量预测2025—2026:从模型竞赛到系统融合的范式转型
人工智能·深度学习·算法·机器学习·架构
桐盛科技5 小时前
拒绝“漂绿”风险:基于边缘计算的碳排放数据清洗算法与实时校验逻辑
人工智能·算法·边缘计算
wuyk5555 小时前
107.FreeRTOS 链表深度解析:从原理到面试满分答案
c语言·开发语言·数据结构·stm32·单片机·链表·面试