传送门

分析

二分一下,把矩阵改成010101矩阵,搞一下前缀和即可

代码

#pragma GCC optimize(3)
#include <bits/stdc++.h>
#define debug(x) cout<<#x<<":"<<x<<endl;
#define dl(x) printf("%lld\n",x);
#define di(x) printf("%d\n",x);
#define _CRT_SECURE_NO_WARNINGS
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;
typedef vector<int> VI;
const int INF = 0x3f3f3f3f;
const int N = 1e3 + 10;
const ll mod = 1000000007;
const double eps = 1e-9;
const double PI = acos(-1);
template<typename T>inline void read(T &a) {char c = getchar(); T x = 0, f = 1; while (!isdigit(c)) {if (c == '-')f = -1; c = getchar();}while (isdigit(c)) {x = (x << 1) + (x << 3) + c - '0'; c = getchar();} a = f * x;
}
int gcd(int a, int b) {return (b > 0) ? gcd(b, a % b) : a;}
int a[N][N];
int sum[N][N];
int n,k;bool check(int mid){for(int i = 1;i <= n;i++)for(int j = 1;j <= n;j++)sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + (a[i][j] >= mid);for(int i = k;i <= n;i++)for(int j = k;j <= n;j++){if(sum[i][j] - sum[i - k][j] - sum[i][j - k] + sum[i - k][j - k] < (k * k / 2) + 1) return false;}return true;
}int main() {read(n),read(k);for(int i = 1;i <= n;i++)for(int j = 1;j <= n;j++)read(a[i][j]);int l = 0,r = INF;while(l < r){int mid = (l + r + 1) >> 1;if(check(mid)) l = mid;else r = mid - 1;}di(l);return 0;
}/**
*  ┏┓   ┏┓+ +
* ┏┛┻━━━┛┻┓ + +
* ┃       ┃
* ┃   ━   ┃ ++ + + +
*  ████━████+
*  ◥██◤ ◥██◤ +
* ┃   ┻   ┃
* ┃       ┃ + +
* ┗━┓   ┏━┛
*   ┃   ┃ + + + +Code is far away from  
*   ┃   ┃ + bug with the animal protecting
*   ┃    ┗━━━┓ 神兽保佑,代码无bug 
*   ┃        ┣┓
*    ┃        ┏┛
*     ┗┓┓┏━┳┓┏┛ + + + +
*    ┃┫┫ ┃┫┫
*    ┗┻┛ ┗┻┛+ + + +
*/

【ABC 203】D - Pond:二分 + 前缀和相关推荐

  1. P1083 借教室(标记永久化线段树/二分+前缀和)难度⭐⭐⭐★

    P1083 借教室 标记永久化线段树 很典型的区间修改问题,先输入赋值建树(这就是最典型的线段树呀,别忘了),然后修改 这里问的是是否有足够的空教室,所以线段树中 min 代表的是当前区间内最小的剩余 ...

  2. POJ 3061 (二分+前缀和or尺取法)

    题目链接: http://poj.org/problem?id=3061 题目大意:找到最短的序列长度,使得序列元素和大于S. 解题思路: 两种思路. 一种是二分+前缀和.复杂度O(nlogn).有点 ...

  3. 【实数二分/前缀和维护】Best Cow Fences

    Poj 2018 Best Cow Fences 实数二分+前缀和维护 调了一晚上, 但发现没什么注意事项orz 无输出只因eps定义成了int型QAQ哭唧唧 #include<cstdio&g ...

  4. AtCoder Beginner Contest 203(Sponsored by Panasonic) D.Pond(二分+二维前缀和)

    link 思路: 先来想想暴力的写法: n2n^{2}n2枚举左上角的顶点,k2k^{2}k2求最小值. 考虑优化: 1.1.1.答案有单调性,可以二分答案,省去枚举左上角顶点的复杂度. 2.2.2. ...

  5. AtCoder Beginner Contest 203 Pond(二分+二维前缀和)

    样例输入 [样例1] 3 2 1 7 0 5 8 11 10 4 2 [样例2] 3 3 1 2 3 4 5 6 7 8 9 样例输出 [样例1] 4 [样例2] 5 据说这个题用对顶堆维护被卡了 先 ...

  6. 聪明的质监员 2011年NOIP全国联赛提高组(二分+前缀和)

    聪明的质监员 2011年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold   题目描述 Description 小 T 是一名质量监督员, ...

  7. AcWing120防线 经典题二分+前缀和+等差数列

    达达学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天-受尽屈辱的达达黑化成为了黑暗英雄怪兽达达. 就如同中二漫画的情节一样,怪兽达达打算毁掉这个世界. 数学竞赛界的精英 lqr 打算阻止怪兽达达的阴谋 ...

  8. POJ3179 Corral the Cows 离散化 二分 前缀和

    题目链接 http://poj.org/problem?id=3179 分析 容易想到二分和前缀和,难点在于坐标离散化,要将横纵坐标分别离散化. 对于三叶草的每个坐标,将其映射为次序: 没有三叶草的位 ...

  9. Corral the Cows POJ - 3179(二分+前缀和+离散化)

    题意:传送门 题解:根据题意可以直接看出使用二分来做,但是数据范围是100001000010000,二分+++判断下来复杂度为O(n2∗logn)O(n^2*logn)O(n2∗logn)肯定会TTT ...

最新文章

  1. 083、Prometheus架构(2019-05-05 周日)
  2. phpcms v9整合Ueditor
  3. SQL Server创建索引
  4. (原+转)linux安装rtl 8812au驱动
  5. 宏光MINI EV收割的年轻人,又被苏宁、小米、欧拉盯上了
  6. ant的设置properties
  7. 插入箭头_“PPT立体箭头”这样做
  8. php生成extjs下拉树json数据格式
  9. ORA-01555 原因与解决
  10. KVM虚拟机禁止上网(路由转发)
  11. 【520有奖征文】 老同学聚会,20年IT行业从业感悟
  12. IOS平台hosts修改
  13. 幅值与峰峰值的计算_正弦波的幅度指的是峰值还是峰峰值
  14. 【ROS】header.stamp与double转换
  15. linux 查看磁盘实际空间,如何运用linux查看磁盘总空间
  16. html中隐藏溢出怎么写,CSS溢出文字隐藏
  17. 超强可视化图表工具:Smartbi!!
  18. VSCode 浏览器打开插件
  19. 多线程系列学习:AQS(一)获取锁
  20. 人工智能:免疫算法概述

热门文章

  1. 计算机 缓冲区,计算机里的缓冲区
  2. 基于51单片机智能浇花自动浇水灌溉
  3. Windows11系统农业银行企业K宝无法正常使用的解决方法
  4. 什么是JTAG及JTAG接口简介
  5. 华三防火墙添加web用户_H3C F1000-C-G防火墙开web功能
  6. hibernate left join fetch 出错的问题
  7. pythonjam怎么使用_Jam 使用说明
  8. serverless入门介绍
  9. 花老湿学习OpenCV:直方图、直方图的计算、均衡化、对比、反向投影
  10. matlab 图像中加入高斯白噪声,MATLAB——如何给图像添加高斯白噪声