51nod 1276 一个标签是并查集但跟并查集没有关系的3级题

(1)a,b排序的原因是比较快。

(2)visit每次枚举询问不需要初始化的原因:b是升序排列的,枚举到b(i)时前面已经被淹没的岛屿仍然被淹没。

(3)ans=1的原因是在b=0是仅存在一个大岛屿。

(4)整个问题存在四种情况

    1)第一个岛屿被淹没,这时如果第2个岛屿早已经被淹没了,就说明第一个岛屿被淹没以前是孤立存在的,现在被淹没了,那么ans当然要--;

    2) 最后一个岛屿被淹没,这时如果第n-1个岛屿早已经被淹没了,同2)。

    3) 中间的一个岛屿被淹没了,如果前一个岛屿和后一个岛屿早已经被淹没了,同2)。

    4) 中间的一个岛屿被淹没了,如果前一个岛屿和后一个岛屿都没有被淹没,这时淹没这个岛屿就相当于把原来一个大岛屿分成两半,ans要++;

    5) 中间的一个岛屿被淹没了,与它相邻的连个岛屿只有一个被淹没,这就相当于有一个大岛屿面积缩小了,但它还是一个完整的岛屿,所以ans不变。

(5)ans不变的原因同(2)。

(6)b.cnt储存的是询问的编号,把ans存进去就行。

时间: 2024-12-20 02:18:57

51nod 1276 一个标签是并查集但跟并查集没有关系的3级题的相关文章

js实现给一个标签添加多个class值

在写html跟css的时候,我们会给一些标签起一些class的名字,但是在写js的时候可能也会通过cssName操作css样式,如果只是平常的element.className = "value";的话,那么之前的定义的class会被置空,css中的样式就会受到影响,所以,在js中如果有微调css的话,尽量使用element.style来改变.但是如果真的是使用element.className = "value";的话也可以在js中实现给一个标签添加多个class

[原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(下)-搭建Hadoop集群

上篇:用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker 上篇介绍了快速上手Docker部分,下面接着介绍搭建Hadoop集群部分. 六.搭建Hadoop伪分布模式 我们先用前面创建的这个容器来搭建Hadoop伪分布模式做测试,测试成功后再搭建完全分布式集群. 1.SSH这个centos容器可以看做是一个非常精简的系统,很多功能没有,需要自己安装.Hadoop需要SSH,但容器没有自带,需要我们安装.①安装SSH # yum -y ins

JS中对获取一个标签的class的方法封一个库

在JS中我们经常会会用到,获取一个标签的id var aId=document.getElementById("id") 现在虽然有getElementsByClassName这个方法,但是这个方法再ie6下兼容性存在问题,所以保险起见还是封一个获取class的库 首先先看库 /** * Created by asus on 2016/12/4 By dirk_jian. */ function getByclass(oParent,sClass){ var aEle=oParent.

python+selenium遍历某一个标签中的内容

一.python+selenium遍历某一个标签中的内容 举个例子:我要获取列表标签<li></li>的内容 根据python+selenium定位到列表整体,使用for循环获取列表文本:可用于校验列表是否存在你需要的文本内容 1.获取内容不包含嵌套层列表 给出代码: from selenium import webdriver import time d = webdriver.Chrome() d.maximize_window() # 窗口最大化###登录某网站 d.get(

java+selenium——键盘操作+快捷键ctrl+t——新打开一个标签页

package rjcs; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.List; import org.openqa.selenium.interactions.Actions; import org.apache.commons.io.FileUtils; import org.openqa.selenium.TakesScreenshot; import org.openqa.

从单机到集群会话的管理之集群模式二(更大的集群)

<从单机到集群会话的管理之集群模式一>中讲到的全节点复制的网络流量随节点数量增加呈平方趋势增长,也正是因为这个因素导致无法构建较大规模的集群,为了使集群节点能更加大,首要解决的就是数据复制时流量增长的问题,下面将介绍另外一种会话管理方式,每个会话只会有一个备份,它使会话备份的网络流量随节点数量的增加呈线性趋势增长,大大减少了网络流量和逻辑操作,可构建较大的集群. 下面看看这种方式具体的工作机制,集群一般是通过负载均衡对外提供整体服务,所有节点被隐藏在后端组成一个整体.前面各种模式的实现都无需负

mongodb3.6集群搭建:分片+副本集

mongodb是最常用的noSql数据库,在数据库排名中已经上升到了前五.这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群. 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置服务器等.相关概念mongodb集群架构图: 从图中可以看到有四个组件:mongos.config server.shard.replica set.mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个请求分发中心,它

模型训练过程中的训练集、训练开发集、开发集和测试集总结

36.什么时候你应该在不同分布上做训练和测试 当你的猫app已经上传10000张图,你已经人工标记它们有没有猫,同时你有200000张互联网上下载的图,这时你要怎么划分训练开发测试集呢? 当你训练深度学习模型时,可能必须用到那200000张图,那么训练和测试集的分布就不同,这会怎样影响你的工作呢? 当然将210000张图片随机分裂到训练开发测试集是一种方法,但我(吴恩达)不推荐这种方法,记住选择开发测试集的推荐方法是:选择你未来预期会得到的数据来作为开发测试集. 大多数学术文章假设训练开发测试集