题目链接: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

分析

WUSTOJ 1346: DARK SOULS(Java)并查集的更多相关文章

  1. java 并查集

    并查集代码 并查集优化⼀ 并查集优化⼆ 实战题⽬目1. https://leetcode.com/problems/number-of-islands/2. https://leetcode.com/ ...

  2. Java 并查集Union Find

    对于一组数据,主要支持两种动作: union isConnected public interface UF { int getSize(); boolean isConnected(int p,in ...

  3. java——并查集 UnionFind

    时间复杂度: O(log*n),近乎是O(1)级别的 UnionFind 接口: public interface UF { int getSize(); boolean isConnected(in ...

  4. WUSTOJ 1319: 球(Java)并查集

    题目链接:1319: 球 参考:wustoj 1319 球-wust_tanyao,并查集 并查集系列:WUSTOJ 1346: DARK SOULS(Java)并查集 Description Icy ...

  5. 并查集(Java实现)

    (最好在电脑下浏览本篇博客...手机上看代码不方便) 当时学的时候看的一本印度的数据结构书(好像是..有点忘了..反正跟同学们看的都不一样...)...里面把本文提到的所有情况都提到了,我这里只是重复 ...

  6. 并查集的Java实现

    Java实现并查集,合并时采用路径压缩算法. 如果合并时使用循环修改的方法,一次合并的时间复杂度就为N,无法接受 public class Union { public int[] id;//对应索引 ...

  7. 并查集---java模板

    并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中.这一类问题近几年来反复出 ...

  8. HYSBZ - 1050(旅行comf 并查集Java实现)

    HYSBZ - 1050(旅行comf Java实现) 原题地址 解法:枚举每一条边,对于这条边,我们需要找到集合中和其值相差最小的最大边,这个集合是指与包括i边在内的ST联通集.对于这一要求,我们只 ...

  9. 并查集(不相交集合)详解与java实现

    目录 认识并查集 并查集解析 基本思想 如何查看a,b是否在一个集合? a,b合并,究竟是a的祖先合并在b的祖先上,还是b的祖先合并在a上? 其他路径压缩? 代码实现 结语 @(文章目录) 认识并查集 ...

随机推荐

  1. H5注意点(2)

    1. 列表标签的作用:给一堆数据添加列表语义,也就是告诉搜索引擎告诉浏览器这一堆数据是一个整体. 2. HTML中列表标签的分类 - 无序列表(最多)(unordered list)(格式:ul> ...

  2. Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...

  3. HttpWebRequest使用时发生阻塞的解决办法

    HttpWebRequest使用如下: 第一种:使用Using 释放资源 /// <summary> /// Http Get请求返回数据 /// </summary> /// ...

  4. gitlab搭建与基本使用【转】

    一.git.github.gitlab的区别Git是版本控制系统,Github是在线的基于Git的代码托管服务.GitHub是2008年由Ruby on Rails编写而成.GitHub同时提供付费账 ...

  5. 如何使用eclipse创建简单的servlet

    Servlet是一种基于java开发的服务器程序,可以对外公布服务,如果是浏览器应用,可以通过浏览器打开网址的方式查看服务.创建servlet要继承httpservlet,并且在web.xml中配置拦 ...

  6. Kali Linux软件更新日报20190623

    Kali Linux软件更新日报20190623   (1)payloadsallthethings更新到2.0-0kali4,此次更新增加帮助脚本. (2)tftpd32更新到4.50-0kali2 ...

  7. 小D课堂 - 零基础入门SpringBoot2.X到实战_第7节 SpringBoot常用Starter介绍和整合模板引擎Freemaker、thymeleaf_28..SpringBoot Starter讲解

    笔记 1.SpringBoot Starter讲解     简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-b ...

  8. Typescript 介绍和安装编译

    一. Typescript 介绍 1. TypeScript 是由微软开发的一款开源的编程语言. 2. TypeScript 是 Javascript 的超级,遵循最新的 ES6.Es5 规范.Typ ...

  9. ROS学习笔记(一)

    运行ROS例程(turtlesim)1)安装turtlesim包sudo apt-get install ros-kinetic-turtlesim2)运行管理器节点roscore3)运行turtle ...

  10. pcm、wav、amr说明

    wav比pcm多44个字节(在文件头位置多)