首页 > 剪纸游戏
头像 回应我吧爱莉希雅
发表于 2024-01-20 13:53:31
链接https://ac.nowcoder.com/acm/contest/73450/D 这道题直接用BFS把所有连通块找出来,将每一个连通块的最大最小的x轴与y轴坐标记录下来,遍历这四个点所包含的区域,看是否有'*'就行了,下面是代码。 #include<bits/stdc++.h> 展开全文
头像 lovejsn
发表于 2024-01-19 22:25:12
链接https://ac.nowcoder.com/acm/contest/73450/D 题目如上。 此题考查一个图的深度或者广度优先遍历。 此题的难点在于判断是否是一个长方形,我是在广度优先的时候记录了所走过的方块数量cnt,和所有点的最大最小横纵坐标,即maxi,maxj,mini,minj, 展开全文
头像 BeauWill
发表于 2026-05-02 01:40:16
Modern CppFlood Fill模型,考虑bfs。对于每一个四方向连通块,判断左上角和右下角坐标围成范围的格子数量是否等于连通块的数量,答案就是每次判断符合条件累加的结果。 #include <iostream> #include <vector> #include 展开全文
头像 ikun_ac
发表于 2025-08-08 23:58:52
题目链接 剪纸游戏 题目描述 给定一张由 '.' 与 '*' 组成的 矩阵,'.' 表示被剪去的小方格,'*' 表示仍保留的小方格。'.' 的每个连通块(按四方向连通)对应一个被剪下的图案。问被剪下来的图案中,有多少个是长方形(正方形视为特殊的长方形)。 输入: 第一行两个整数:、 接下来 行 展开全文
头像 大蒜拌捣体
发表于 2026-04-23 21:36:28
#include <stdio.h> int n, m; char maze[1005][1005]; // int vis[1005][1005]; //本次不使用标记数组,而是遇到'.'后把它入队,随即把此位置改成一个特殊字符'#'表示已访问过 int dir[4][2] = { 展开全文
头像 小胡放轻松
发表于 2025-12-16 00:04:27
#include <iostream> #include <vector> #include <set> #include <queue> using namespace std; //判断传入的连通块是否是矩形 int check(set<p 展开全文
头像 Young__Yang0508
发表于 2025-12-14 09:19:43
#include <stdio.h> #include <string.h> int main(void) { int n, m; scanf("%d%d", &n, &m); char grid[1005][10 展开全文
头像 laingdc
发表于 2026-05-13 14:00:31
DFS会爆栈 from re import M import sys from collections import deque dirs = [(1,0), (-1,0), (0,1), (0,-1)] # 判断这个区间内是不是都是矩形 def judge(ma,mi): for i in 展开全文
头像 laingdc
发表于 2026-05-13 14:03:33
from re import M import sys from collections import deque dirs = [(1,0), (-1,0), (0,1), (0,-1)] # 判断这个区间内是不是都是矩形 def judge(ma,mi): for i in range( 展开全文
头像 冷艳的西红柿刷牛客
发表于 2025-10-28 10:18:36
#include <iostream> #include <string> #include <queue> #include <algorithm> using namespace std; struct Grid { int x; int y 展开全文