首页
比赛
tracker
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
最大正方形
8条解析
开通博客写题解
方旬
发表于 2025-01-25 09:31:58
题目:链接 题意 给定一个字符矩阵,找到矩阵中的最大正方形。 思路 关键在于如何确定一个正方形。枚举正方形的四个顶点,有8层for循环,显然不可取。所以根据正方形的特点,只需要枚举正方形的对角线的两个顶点,只需要4层for循环。确定好正方形以后,就是寻找最大的正方形,根据几何知识,边长(对角线)越长
展开全文
Ldh1315109
发表于 2025-11-07 17:11:52
def solve(testcase): n = II() s = [I() for _ in range(n)] A = [] for i in range(n): for j in range(n): if s[i][j
展开全文
Z_L_G
发表于 2025-02-26 21:57:23
题意 给定一个由*和#构成的正方形矩阵,求其中以#为顶点的最大正方形,输出四个顶点坐标 思路 两个点确定一个正方形,三个点确定一个长方形,枚举所有的两个#,check当前两个#构造出的另外两个顶点是否为#,通过边长比较正方形大小 注意:计算几何中尽可能避免硬解方程组,多考虑向量和三角函数,本题
展开全文
RogeAustine
发表于 2025-12-24 17:03:36
/*这道题需要懂得这样一点,就是正方形已知三点就可以通过横纵坐标差值求出第四点 因此我们对于每个为井号的点,从这个点出发开始往右下进行遍历, 通过手动构造的点的横纵坐标差值,构造出剩余两个点的坐标, 注意检查是否越界,然后看构造出的点是不是井号就行了 实时更新最大值与最大值对应的四个点坐标
展开全文
自由的风0450
发表于 2025-11-22 12:36:20
因为所以直接枚举。 先用找出两个顶点,再计算其余顶点。 #include<vector> #include<cmath> using namespace std; int main() { int n; cin>>n; vector<
展开全文
_name
发表于 2025-12-26 23:05:08
#include <iostream> using namespace std; /* 题中坐标从1开始,但操作时i,j均从0开始,在最后输出时对结果加一即可 先把所有的字符储存至cs[n][n] 然后开始遍历 先遍历到第一个#号,然后去找第二个#号,把这两个#号作为正方形的两个顶点 根
展开全文
Drink0318
发表于 2025-12-08 11:37:11
#include <iostream> #include <cmath> using namespace std; const int MAXN = 110; char ch[MAXN][MAXN]; // 存储最终答案的四个顶点 int ans[4][2]; // 记录最
展开全文
lotusor
发表于 2025-12-06 23:13:58
n = int(input()) list0 = [list(input().strip()) for _ in range(n)] # 收集所有#的位置 points = [] for i in range(n): for j in range(n): if list0[i
展开全文
查看本题
查看本题讨论
相关比赛
20960-2021秋季算法入门班第一章习题:模拟、枚举、贪心
进入比赛
127358-模拟枚举和贪心
进入比赛
等你来战
查看全部
牛客练习赛148
报名截止时间:2026-01-23 21:30
牛客周赛 Round 128
报名截止时间:2026-01-25 21:00
牛客小白月赛128
报名截止时间:2026-01-30 21:00
牛客周赛 Round 129
报名截止时间:2026-02-01 21:00
2026牛客寒假算法基础集训营1
报名截止时间:2026-02-03 18:00
2026牛客寒假算法基础集训营2
报名截止时间:2026-02-05 18:00
牛客2026年情人节比赛
报名截止时间:2026-02-14 21:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题