看了一眼这题所用的操作,我觉得二维树状数组珂做,然后发现如果按时间顺序把节点一个个加进去再判会TLE,但发现二分时间明显比刚刚的做法快,于是二分时间+暴力插入该时间之内的点+树状数组维护即可AC

贴个代码:

#include <cstdio>
#include <cstring>
#define ll long long
#define lowbit(x) (x&(-x)) inline ll read(){
ll x = 0; int zf = 1; char ch = ' ';
while (ch != '-' && (ch < '0' || ch > '9')) ch = getchar();
if (ch == '-') zf = -1, ch = getchar();
while (ch >= '0' && ch <= '9') x = x * 10 + ch - '0', ch = getchar(); return x * zf;
} int C[1005][1005];
int n, m, k, q;
int xi[250005], yi[250005];
ll ti[250005]; void clr(){
memset(C, 0, sizeof(C));
} void modify(int i, int j, int val){
for(int x = i; x <= n; x += lowbit(x))
for(int y = j; y <= m; y += lowbit(y))
C[x][y] += val;
} int getsum(int i, int j){
int res = 0;
for(int x = i; x > 0; x -= lowbit(x))
for(int y = j; y > 0; y -= lowbit(y))
res += C[x][y];
return res;
} inline bool judge(ll num){
clr();
for (int i = 1; i <= q; ++i)
if (ti[i] <= num)
modify(xi[i], yi[i], 1);
for (int i = k; i <= n; ++i)
for (int j = k; j <= m; ++j){
int tmp1 = getsum(i, j) - getsum(i - k, j) - getsum(i, j - k) + getsum(i - k, j - k);
if (tmp1 == k * k)
return true;
}
return false;
} int main(){
n = read(), m = read(), k = read(), q = read();
ll _max = 0;
for (int i = 1; i <= q; ++i){
xi[i] = read(), yi[i] = read(), ti[i] = read();
if (ti[i] > _max) _max = ti[i];
}
ll l = 0, r = _max + 1, ans = -1;
while (l <= r){
ll mid = (l + r) >> 1ll;
if (judge(mid)){
r = mid - 1;
ans = mid;
}
else
l = mid + 1;
}
printf("%d", ans);
return 0;
}

最新文章

  1. elasticsearch suggest 的几种使用-completion 的基本 使用
  2. linux下安装jdk+tomcat+eclipse+mysql
  3. OTG 接口烧写最小Linux的方法
  4. iOS 的 Safari 文件上传功能详解
  5. loadView, viewDidLoad 快速使用
  6. Core管道中的处理流程3
  7. c++ 10
  8. android脚步---UI界面修改,关于activity中增加按钮和监听
  9. java 多线程安全问题-同步代码块
  10. 基于Windows下python环境变量配置
  11. mybatis快速入门(八)-spring-mybatis动态代理整合
  12. 局域网下访问其他计算机搭建的django网页
  13. BMP 转 YUV (BMP2YUV)
  14. 开篇python
  15. jmeter笔记(3)--响应结果中文乱码的解决方式
  16. Go指南练习_Reader
  17. hbase1.4.0安装和使用
  18. 更改GeoServer的端口号
  19. 如何让chrome浏览器自动翻译
  20. Unity3D for VR 学习(3): 暴风魔镜PC Input小改造–自己动手、丰衣足食

热门文章

  1. nginx的域名解析
  2. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_08 转换流_6_练习_转换文件编码
  3. Vue+Java实现在页面树形展示文件目录
  4. JMeter性能测试入门-不同类型线程组的使用
  5. Policy Improvement and Policy Iteration
  6. 如何通过脚本实现显示版本号、CPU、硬盘和内存条大小
  7. Vue—非父子组件间的传值(Bus/发布订阅模式/观察者模式/总线)
  8. Sentinel之熔断降级
  9. 1 Python 新建项目
  10. MongoDB查询系统