p1331专题

作业1-224——P1331 海战

思路 深搜的方式,让它只遍历矩形块,然后在下面的遍历中判断是否出现矩形块交叉,但是很难实现,然后发现可以通过在遍历过程中判断是否合法。 参考代码 #include<iostream> #include<cstdio> using namespace std; const int N = 1010; char g[N][N]; int st[N][N]; int r, c; in

洛谷P1331海战

题目背景 在峰会期间,武装部队得处于高度戒备。警察将监视每一条大街,军队将保卫建筑物,领空将布满了 F-2003 飞机。 此外,巡洋船只和舰队将被派去保护海岸线。不幸的是,因为种种原因,国防海军部仅有很少的几位军官能指挥大型海战。因此,他们培养了一些新海军指挥官。军官们选择了“海战”游戏来帮助他们学习。 题目描述 在一个方形的盘上,放置了固定数量和形状的船只,每只船却不能碰到其它的船。在本

P1331 海战

题目传送门:P1331 海战 dfs求联通块 如果遇到船只就把船只数加一,然后搜索把这个船只全部标位海,防止以后的重复搜索。 代码: #include<bits/stdc++.h>using namespace std;char g[1005][1005];int n,m;bool check(int x,int y){int cnt=0;if(g[x][y]=='#') cn

洛谷:P1331 海战

题目描述 在一个方形的盘上,放置了固定数量和形状的船只,每只船却不能碰到其它的船。在本题中,我们认为船是方形的,所有的船只都是由图形组成的方形。 求出该棋盘上放置的船只的总数。 输入格式 第一行为两个整数 R 和 C,用空格隔开,分别表示游戏棋盘的行数和列数。 接下来 R 行,每行 C 个字符,为 # 或 .。# 表示船只的一部分,. 表示水。 输出格式 一行一个字符串,如果船的位置