一行一个字符串,如果船的位置放得正确(即棋盘上只存在相互之间不能接触的方形,如果两个#号上下相邻或左右相邻却分属两艘不同的船只,则称这两艘船相互接触了)。就输出There are S ships.,S 表示船只的数量。否则输出Bad placement.。 思路 一眼就是标准的Flood Fill算法,这没啥好说的。本题唯一要考虑的点,就...
洛谷题解 P1331 海战 原题传送门 0.前言依旧是一个简单的搜索训练呢... 1.算法DFS或BFS均可(此处使用DFS) 2.思路 看见样例,依然还是一道简单的搜索题。 这道题在原先是 普及/提高- 的题,后来是不是因为太简单被调了 可以把这道题主要要完成的操作: 搜索+统计船的个数 判断是否有船相邻 其中第一个操作...
本蒟蒻本想写一个dfs,但是后来发现根本不用,由于作者太懒,煤油改函数名。因此本篇题解适合不会搜索的童鞋(懂得搜索的大佬也可以康康哦,还是挺有参考价值的吗?)。 思路: 输入后,找‘#’,判断该‘#’所在方阵是否合法。如不合法,直接输出“Bad placement.”并结束程序;合法的话,用染色的办法删除该方阵,ans++;...
此外,巡洋船只和舰队将被派去保护海岸线。不幸的是因为种种原因,国防海军部仅有很少的几位军官能指挥大型海战。因此,他们考虑培养一些新的海军指挥官,他们选择了“海战”游戏来帮助学习。 在这个著名的游戏中,在一个方形的盘上放置了固定数量和形状的船只,每只船却不能碰到其它的船。在这个题中,我们仅考虑船是方...
不幸的是因为种种原因,国防海军部仅有很少的几位军官能指挥大型海战。因此,他们考虑培养一些新的海军指挥官,他们选择了“海战”游戏来帮助学习。 在这个著名的游戏中,在一个方形的盘上放置了固定数量和形状的船只,每只船却不能碰到其它的船。在这个题中,我们仅考虑船是方形的,所有的船只都是由图形组成的方形。
洛谷P1331 海战 题解 题目传送门 思路 肯定食用dfs啦。。。 但关键是两条船接触了怎么判断呢?? 上图: 可以发现一下规律 当两条船接触时,必有一条直线连续穿过两条船 当一条船不与另一条船接触时,没有一条直线连续穿过两条船 所以只需要在每一次碰见一条船的一部分(一条船内每个点都要拓展一遍)时,将...
这题坑了我好长时间,只能说是我对DFS不熟,因为我实在是不会输入地图的这一类的题目。 这一弱点实际上在我编写一些数据结构的代码的时候最为突出,在线段树编码过程中,总是会出现这样那样的问题,都是因为不会做DFS。 题面 思路 输入地图,用一个二维数组存储地图,1表示船体,0表示水面。然后从左上向右下搜索船的...
简介:洛谷P1331-海战(简单的DFS) 题目描述: 在峰会期间,武装部队得处于高度戒备。警察将监视每一条大街,军队将保卫建筑物,领空将布满了F-2003飞机。此外,巡洋船只和舰队将被派去保护海岸线。不幸的是因为种种原因,国防海军部仅有很少的几位军官能指挥大型海战。因此,他们考虑培养一些新的海军指挥官,他们选择了“...
Luogu P1331 海战 海战 题目背景 在峰会期间,武装部队得处于高度戒备。警察将监视每一条大街,军队将保卫建筑物,领空将布满了 F-2003 飞机。 此外,巡洋船只和舰队将被派去保护海岸线。不幸的是,因为种种原因,国防海军部仅有很少的几位军官能指挥大型海战。因此,他们培养了一些新海军指挥官。军官们选择了“海战”...
P1331 海战 思路:一开始想的是改一下深搜的方式,让它只遍历矩形块,然后在下面的遍历中判断是否出现矩形块交叉,但是很难实现,然后发现可以通过在遍历过程中判断是否合法。 船体有交叉(连通块不是矩形)<=> 必定会在深搜过程中搜到如下的(a, b)位置(4种情况之一)...