题目链接:1346: DARK SOULS

并查集系列:WUSTOJ 1319: 球(Java)并查集

Description

CQ最近在玩一款游戏:DARK SOULS,这是一款以高难度闻名的硬派动作游戏,而CQ就在这虐与被虐的反复循环中获得了极大的快感(咦我好像泄露了什么……)。

CQ自诩核心玩家,但是他又是个很懒的人。作为一款小怪都可以一套秒人的游戏,DARK SOULS采取的是即时存储制,一不小心挂了就要从复活点重新跑尸,不仅麻烦还要倍加小心(打死的小怪都复活了……一旦跑尸路上被杀还会发生很丧心病狂的事情……),因此CQ决定采用S/L大法,每隔一段时间退出游戏备份存档。

现在问题来了!我们将CQ当前正探索的区域理想化为N*N的正方形网格(坐标从1到N),区域中有若干群小怪,CQ每刷完K群小怪或者探索完该区域就会退出游戏备份存档。那么怎么才算一群小怪呢?CQ对一群小怪的定义是:若两只小怪的水平距离和垂直距离均小于等于D,那么这两个小怪就属于同一群。(唔,心情好的时候会刷完整个区域也说不定),则属于同一群小怪。在上述条件下,CQ想知道探索完给定区域究竟需要备份多少次存档。

前面已经说了CQ是个很懒的人,他懒得算每次他探索一个区域需要备份多少次存档,于是这任务就交给你咯……

Input

输入第一行是整数T,代表接下来有T组数据。

每组数据第一行是三个整数N(1 <= N < =100),K(1 <= K <= 20),D(0 <= D <= 10),S(1 <= S <= N * N),分别代表区域边长,每次刷怪群数,给定距离,小怪数目。

接下来S行数据每行有两个整数X(1 <= X <= N),Y(1 <= Y <= N),代表每只小怪的坐标。

Output

输出CQ总共备份了多少次。

Sample Input

2
5 2 1 6
1 1
2 2
2 5
3 4
4 1
4 3
5 2 1 6
1 1
5 5
2 2
4 4
5 1
3 3

Sample Output

2
1

分析

最新文章

  1. OpenJDK 编译-Linux环境
  2. 跳过 centos部署 webpy的各种坑
  3. 软件产品案例分析(K米 APP)
  4. mac10.12的Cocopods安装使用
  5. JAVA从零单排之前因
  6. 关于try和finaly 里面return的问题
  7. SCOI2014省选总结
  8. C# Coding &amp; Naming Conventions
  9. How to Iterate Over a Map in Java?(如何遍历Map)
  10. win10 删除设备和驱动器中你不要的图标
  11. JAVA字符串缓存器全部方法功能及其作用
  12. 洛谷P1919 【模板】A*B Problem升级版 题解(FFT的第一次实战)
  13. [crypto] AEAD是啥
  14. c 结构体 &amp; 函数指针模拟实现一个java class(类) 和方法
  15. python之面向对象高级
  16. POJ2955--Brackets 区间DP入门 括号匹配
  17. leetcode1032
  18. JavaScript类继承
  19. NVIDIA面目生成器再做突破
  20. .net core创建项目(指令方式)

热门文章

  1. Nginx介绍和使用
  2. 三大框架 之 Struts2
  3. C前序遍历二叉树Morris Traversal算法
  4. 【Tomcat】本地域名访问配置
  5. win7+64位+Java学习基本软件安装+环境配置+eclipse(IDE)
  6. JVM 字节码的结构
  7. PHP课程环境安装总结文档
  8. Qt--core模块概述
  9. Tensorflow 2 Cifar10离线数据集手动下载、离线安装、本地加载、快速读取
  10. Cannot find module &#39;laravel-elixir&#39;问题解决方法