BZOJ4651/UOJ220 [Noi2016]网格】的更多相关文章

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description 跳蚤国王和蛐蛐国王在玩一个游戏. 他们在一个 n 行 m 列的网格上排兵布阵.其中的 c 个格子中 (0≤c≤nm),每个格子有一只蛐蛐,其余的格子中,每个格子有一只跳蚤. 我们称占据的格子有公共边的两只跳蚤是相邻的. 我们称两只跳…
题目分析: 答案显然只有{-1,0,1,2}四种. 对于答案等于-1的情况,只有两种情况,一种是只剩一只跳蚤,另一种是只剩两只跳蚤且他们四连通,这个很好判. 对于答案等于0的情况,那说明联通块大于1,把图离散出来连边并查集判就可以了. 对于答案等于1的情况,我们要考虑唯一的联通块是否存在割顶,具体的,我们发现答案只可能是有蛐蛐的格子旁边的八个格子(n=1或m=1除外),那么把它们提取出来单独建点,而其它的离散,跑一边割顶就可以做了. 剩下的输出2. 代码: #include<bits/stdc+…
[UOJ#220][BZOJ4651][Noi2016]网格 试题描述 跳蚤国王和蛐蛐国王在玩一个游戏. 他们在一个 n 行 m 列的网格上排兵布阵.其中的 c 个格子中 (0≤c≤nm),每个格子有一只蛐蛐,其余的格子中,每个格子有一只跳蚤. 我们称占据的格子有公共边的两只跳蚤是相邻的. 我们称两只跳蚤是连通的,当且仅当这两只跳蚤相邻,或存在另一只跳蚤与这两只跳蚤都连通. 现在,蛐蛐国王希望,将某些(0 个,1 个或多个)跳蚤替换成蛐蛐,使得在此之后存在至少两只跳蚤不连通. 例如:我们用图表示…
https://www.lydsy.com/JudgeOnline/problem.php?id=4651 https://www.luogu.org/problemnew/show/P1173#sub http://uoj.ac/problem/220 跳蚤国王和蛐蛐国王在玩一个游戏. 他们在一个 n 行 m 列的网格上排兵布阵.其中的 c 个格子中 (0≤c≤nm),每个格子有一只蛐蛐,其余的格子中,每个格子有一只跳蚤. 我们称占据的格子有公共边的两只跳蚤是相邻的. 我们称两只跳蚤是连通的,…
题目大意 有一个\(n*m\)(\(n,m\leq10^9\))的网格,每个格子是空地或障碍(\(障碍数\leq10^5\)) 定义两块空地连通,当且仅当它们是"相邻的两块空地"或"存在一块空地与这两块空地连通的两块空地"(也就是四连通) 求至少添加多少块障碍物,使存在两块空地不连通,或者输出-1表示无解 题解 当只有一块空地或只有两块相邻的空地时,无解 有解时,发现总能找到一个角落,使只用两个障碍物就能将这个角落和外界分开(如图) 也就是说,答案不超过2 当初始的…
下面直接给出结论,相关证明见官方题解. 1.若跳蚤数不超过1或仅有两只跳蚤且相邻,则答案为-1. 2.若跳蚤形成的连通块个数大于1,则答案为0. 3.若跳蚤之间建图存在割点,则答案为1. 4.否则为2. 这样就有70分了.但是图太大了,显然有很多没用的跳蚤被统计进答案. 考虑到造成不连通的情况一定在蛐蛐附近,于是将每个蛐蛐周围5*5的格子中的24个跳蚤全部取出,内圈8个称为一级空地,外圈称为二级空地.之考虑这些点即可,复杂度就只与蛐蛐个数相关了. 将所有被取出的跳蚤建图,求连通块个数和割点即可.…
首先显然可以通过孤立角落里的跳蚤使其不连通,所以只要有解答案就不会大于2.同样显然的一点是当且仅当跳蚤数量<=2且连通时无解.做法其实也很显然了:特判无解,若跳蚤不连通输出0,否则看图中是否无割点(即点双连通),若无答案为2,否则为1. 现在的问题是这个图实在是太大了.正常的离散化可能仍然需要留下c2个点.这个时候发现部分分很足于是我们就可以弃疗了. 比较直观的一点是附近没有蛐蛐的跳蚤不太可能被割开.显然只有周围八连通有蛐蛐的位置才可能成为割点.那么要判断其是否是割点还需要再取周围一圈.所以取出…
来自FallDream的博客,未经允许,请勿转载,谢谢.   跳蚤国王和蛐蛐国王在玩一个游戏. 他们在一个 n 行 m 列的网格上排兵布阵.其中的 c 个格子中 (0≤c≤nm),每个格子有一只蛐蛐,其余的格子中,每个格子有一只跳蚤. 我们称占据的格子有公共边的两只跳蚤是相邻的. 我们称两只跳蚤是连通的,当且仅当这两只跳蚤相邻,或存在另一只跳蚤与这两只跳蚤都连通. 现在,蛐蛐国王希望,将某些(0 个,1 个或多个)跳蚤替换成蛐蛐,使得在此之后存在至少两只跳蚤不连通. 例如:我们用图表示一只跳蚤,…
这个码量绝对是业界大毒瘤...... 300行,6.5k,烦的要死...... 题意:给你一个网格图,里面有0或1.你需要把一些0换成1使得存在某两个0不四联通.输出最小的换的数量.无解-1. n,m<=1e9,网格中1的数量<=1e5,多组数据. 首先我们发现,最多只要2就行了(围住一个角落),所以答案是[-1,2]中的整数. 然后考虑何时为-1:0的数目小于2或等于2且相连. 何时为0:图初始就不连通. 何时为1:图中存在割点. 除此之外就是2了. 然后发现图很大,c很小,考虑离散化. 然…
luoguP1712 [NOI2016]区间 这是一道送分题. 对于我这种每天抄题解不动脑子思维僵化得厉害的智障选手就是送命题. 一直在想端点排序各种Treap搞... 正解: 已知一些区间,如何判断是否满足条件?满足条件是有一个点被覆盖的次数大于m,那么用线段树可以解决这个问题.把区间按长度排序,从小往大考虑答案中选中最长区间的最大值.加入一个新的区间,线段树上区间加,当最大值仍大于m时,按加入时间删去最早的区间即可. //Achen #include<algorithm> #include…
NOI2018前的每日记录 开头 今天是\(2018.7.2\),不知不觉已经这么久了.本来还是高一的小蒟蒻,过不了多久就要成为高二的老年选手了. 再过半个月我也要去\(NOI\)打酱油了.我这种D类蒟蒻当然是去打酱油的啊 发现我自己最近状态差的不行,索性开一个坑记录一下自己每天干了些啥,状态什么的怎么样吧. 和省选前一样吧,也就是流水账+做题的一些记录,顺带加上一点自己的感悟吧. 差不多就是这样了.但是现在已经是晚上了,今天我就不写今天发生的事情了. 听说明天要考试,所以我从明天开始记录,这样…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
2019-03-29 [NOI2016]网格 如果是矩形,要记得考虑n或m=1的情况,不要潜意识里就以为矩形就是接近正方形的那种理想矩形. 写bool型的函数,return 的语句要想清楚,不要放错位置. 2019-03-30 [NOI2013]矩阵游戏 写高精度如果重载了运算符,数组大小不能开的太大(不要超过1e4比较安全吧) 实在太大就不要用重载了. 矩阵乘法的矩阵要尽量优化,不要随便就写出一个3*3的矩阵,其实只要1*2就够了 O(27)与O(2)的常数差距啊.. 2019-03-31 […
这篇博客主要是用来记自己写代码的时候犯的各种小技巧和低级失误,好提醒自己,从而尽量缩短debug时间. 点分治 1.求每一个子树到重心的距离的函数接口应该是dfs2(v, eg, e[i].w)而不是dfs2(v, now, 0).一方面是子树的父亲是当前的重心,而不是进入这一层点分治的点:另一方面别忘了考虑这条边的贡献. 2-SAT 1.建图一定要考虑对称性,即"如果\(x\)成立,则\(y\)必须成立",那么我们还得考虑如果\(y\)不成立,则\(x\)也不能成立,比如[NOI20…
[BZOJ4651][NOI2016]网格(Tarjan,哈希) 题面 BZOJ 洛谷 题解 首先把题目稍微变得好说一些,给定一个网格,已经删去了若干个格子 问最少删去多少个格子使得图不连通. 这题的关键是要看出答案一定只有\(-1,0,1,2\) 证明一下一定存在答案不超过二. 在不是无解的情况下,四个角上的答案一定不会超过\(2\) 假设四个角被删去了,那么在边界上一定存在一个未被删去的格子, 一边抵着边界另外一边和一个被删去的格子相邻 (你可以认为这个角被删去了,然后这个角的限制就移动到了…
刚了几个小时啊,这tm要是noi我怕不是直接滚粗了.我判答案为1的情况试了几种做法,最后终于想到了一个靠谱的做法,然后细节巨多,调了好久,刚拿到97分时代码有6.2KB了,后来发现有些东西好像没啥用就删到了5KB了,然后发现hack数据T掉了,就写了个哈希表换掉了map才过...真累 对了,我最开始判1是先求的割点再判断,只不过我感觉好像没有必要求割点啊,直接判也是对的,就把那段删掉了,然后在uoj上可以过,但别人貌似大多都求了割点?也许我这样做相当于求了割点? 讲做法吧(可能还有一些细节没考虑…
「NOI2016」网格 容易注意到,答案最多为2,也就是说答案为-\(1,0,1,2\)四种,考虑逐个判断. 无解的情况比较简单 如果\(nm\le c+1\),显然无解 如果\(nm=c+2\),判断2个跳蚤(如无说明,以下白点指跳蚤)是否四联通(如无说明,以下联通均指四联通),如果是,无解. 先不考虑复杂度 \(0\)的情况,就是白点有两个以上联通块,可以直接bfs判断 \(1\)的情况,就是白点存在割点,可以通过tarjan判断 \(2\)的情况,就是其他情况 这样的复杂度是\(O(Tnm…
$n,m \leq 1e9$,$n*m$的网格中有$c \leq 1e5$个是黑的,其他是白的.问:使至少两个白的不连通,最少需要再把几个白的涂黑. 可以发现答案是-1,0,1,2啦.-1要么没白的,要么一个白的,要么两个相邻白的.如果是两个不相邻白的答案就是0,这些可以特判掉. 其他的情况,可以建个图判连通.判割点.但网格太大了,可以发现连通的话只要关心所有黑点的周围八个白点之间的连通性即可,于是就记下这些点,离散化完分别按$x$和$y$排序来连边.但这样仍不能判割点,比如 0 0 0 0 0…
原文链接www.cnblogs.com/zhouzhendong/p/UOJ220.html 前言 真是一道翔题. 草率题解 -1 的情况很好判,只有两种情况: n * m - c < 2 或者 n * m - c = 2 且两个格子相邻. 对于 x 坐标,我们大力将前两行.后两行.每一个点的上一行.所在行.下一行这些行离散化出来. 对于每一行,我们找出一些关键点,将一行分为若干段,将每一段看做一个点,上下左右相邻的段连边,跑Tarjan判割点. 怎么找关键点?对于每一个点,它左右距离2范围内,…
题解 之前用的mapTLE了,今天用了个hash把题卡了过去,AC数++ 我们只要保留一个点为中心周围5 * 5个格子就可以 如果一个点周围5*5个格子有两个不连通,那么显然输出0 如果一个出现了一个割点,那么看看这个割点在不在离中心点的第一层,如果在的话就是1,没有合法割点的话就是2 然后就是特判了--特判真的挺多的-- 代码 #include <bits/stdc++.h> //#define ivorysi #define MAXN 100005 #define mo 974711 #d…
题目大意 有\(n\)(\(n\leq 5*10^5\))个闭区间\([L_1,R_1],[L_2,R_2],...,[L_n,R_n]\)(\(\forall i\in [1,n],0\leq L_i\leq R_i\leq 10^9\)) 要选取\(m\)个区间,使这\(m\)个区间的交不为空,方案的花费为被选中的区间中 长度最长的区间的长度 减 长度最短的区间的长度 求花费最小的方案,或判断无解 题解 将\(n\)个区间按区间长度排序 问题转化成对于所有满足存在一点被\([L_l,R_l]…
考虑将最上中最左的跳蚤孤立,容易发现他的上面和左面没有跳蚤,因此只需要将他的右边和下边替换掉就可以了答案为-1有两种情况:1.c>=n*m-1;2.c=n*m-2且这两只跳蚤相邻对于其他情况,将所有跳蚤建图后判断:1.是否有多个连通块:2.是否有割点即可,由于跳蚤数量很多,容易发现只需要选择周围5*5的范围内有蛐蛐的跳蚤建图即可只选择3*3会有反例(以下q表示蛐蛐,t表示跳蚤):ttttttttqtttttttqtttttttt(注意如果c=0那么答案为((n>1)&&(m&g…
你乘坐的航班XXX已经抵达终点站——四川绵阳. “呼——”机舱外的天空灰沉沉的,不禁有些压抑与紧张. 一出机场,就看见南山中学的牌子,黄色衣服的志愿者们,还有热情的老师们. 感觉刚才的情绪又一扫而空了,转而迎来的是一种兴奋与激动. 学长和教练都曾说过:就当做一次展现自己实力的机会.从来不要给自己太大压力. 这样的话大多也埋在心里了吧,潜移默化的影响着自己的心情. 那就开心的去面对这几场考试好了. 首先领好东西,还去签名版上签了个名字,发现湖南参赛的选手果然好多呀...不过不知道今年能不能翻身成强…
这篇文章我将向大家演示如何以编程的方式在PDF文档中创建一个网格,并将图片插入特定的网格中. 网上有一些类似的解决方法,在这里我选择了一个免费版的PDF组件.安装控件后,创建新项目,添加安装目录下的dll文件作为项目的引用以及命名空间,如下: using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Grid; 接下来是详细步骤及代码片段: 步骤1: 首先创建一个PDF文档,并添加一个新页面. PdfDocument doc = new…
pcl网格模型有三种可选的显示模式,分别是面片模式(surface)显示,线框图模式(wireframe)显示,点模式(point)显示.默认为面片模式进行显示.设置函数分别为: void pcl::visualization::PCLVisualizer::setRepresentationToSurfaceForAllActors ( ) void pcl::visualization::PCLVisualizer::setRepresentationToWireframeForAllAct…
Possion重建是Kazhdan等2006年提出的网格重建方法[1].Possion重建的输入是点云及其法向量,输出是三维网格.Poisson有公开的源代码[2].PCL中也有Poisson的实现. 核心思想 Possion重建是一个非常直观的方法.它的核心思想是点云代表了物体表面的位置,其法向量代表了内外的方向.通过隐式地拟合一个由物体派生的指示函数,可以给出一个平滑的物体表面的估计. 给定一个区域\(M\)及其边界\(\partial M\),指示函数\(\chi_M\)定义为 这样,把重…
VRIP(Volumetric Range Image Processing),顾名思义,是从深度图重建网格的一种方法.VRIP是Brian Curless和Marc Levoy在1996年提出来的方法,距今已经有20年的历史了,依然属于最好的方法之一. VRIP的核心问题是 已知世界坐标系下,某物体表面\(f\)在不同视角下的深度图\(\hat{f_1},...,\hat{f_K}\),求\(f\).这里隐含深度图在世界坐标系下的位姿是已知的. 许多三维测量方法,比如激光.TOF.结构光.双目…
using System; using System.Collections.Generic; using Foundation; using UIKit; namespace ddd { public partial class ViewController : UIViewController { private List<UIImage> collectionData; private UICollectionView collectionView; private UICollecti…
地图网格设定 LayoutElements elements = m_mapLayoutControl.MapLayout.Elements; //构造GeoMap GeoMap geoMap = new GeoMap(); geoMap.MapName = "京津地区交通干线图"; // 新建一个 GeoMapGrid 对象. GeoMapGrid geoMapGrid = new GeoMapGrid(); // 设置 GeoMapGrid 对象的相关属性,即设置地图的经纬网的风格…
在计算气动声学的时候,有些情况是需要我们提取流体计算的结果作为声学分析的边界条件,但是,有些流体网格因为物理模型的问题需要我们设定interface,恰恰你是机械,对流体了解一点,又不想花费太多时间来学习专业的流体划分网格,下面这个贴子应该多少会起到帮助.题目<如何用hypermesh生成包含interface的流体网格> hypermesh中如何设定interface面.pdf 原文地址…