东华OJ 字符串中等_子字符串排序、二维数组中等_阵列

前言:这阵列比我抽到的暗恋厉害多了。实现思路都挺容易想到但是阵列这题我的思路很容易PE。对于输出条件的控制很高。

阵列:

  1. 分析题意:
    1. 需要我们按照一定规则打印一个矩阵(可能不完全-即3*3的矩阵内可能位置不变但是没有8&9)
    2. 在左边的虽然不需要打印,但是我们仍然需要输入空格来达成格式相同。
  2. 实现思路:
    1. 既然我们判断了一个矩形能够容下这n个元素,那么我们就可以先定义一个足够放下100个元素的二维数组(防止越界),然后判断n个元素需要多大的矩阵存放后再向二维数组存放这个矩阵。
    2. 最后根据n的大小和大于n的元素的位置关系来判断是停止输出还是打印空格占位。

最后判断一行有无二位数从而打印的条件不想写了,一共也就三种情况,直接打表了。

AC代码

#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;
int main()
{
   
   
    int n;
    while(cin>>n){
   
   
        int martix[11][11];
        int edge;
        if(sqrt(n)!=(int)sqrt(n)) edge= (int)sqrt(n)+1;
        else edge=sqrt(n);
        int x,y;
        if(edge%2!=0){
   
   
            martix[edge/2+1][edge/2+1]=1;
            x=edge/2+1;
            y=edge/2+1;
        }
        else {
   
   
            martix[edge/2][edge/2]=1;
            x=edge/2;
            y=edge/2;
        }
        int dir=1;
        int step=0;
        bool flag = 0;
        for(int i=2,move=0;i<=edge*edge
<think>好的,我现在需要处理用户的查询,他们想了解东华大学OJ平台上的“暗恋”相关话题或故事。首先,我需要确认用户提到的“暗恋”具体指的是什么。根据提供的引用内容,特别是引用[3],用户提到的“暗恋”实际上是东华大学OJ中的一个编程题目名称。 用户可能误以为“暗恋”是一个真实的讨论话题,但根据现有资料,它其实是一个算法题目。接下来,我需要检查提供的三个引用内容,看看是否有其他相关信息。引用[1]提到了FBI函数的递归使用,引用[2]讨论了字符串排序阵列问题,而引用[3]详细描述了“暗恋”题目的解题思路,涉及二维数组和递归方法。 我需要明确告诉用户,“暗恋”在这里是一个编程题,而不是情感话题。同时,应该解释题目的内容和解题思路,帮助用户理解题目的要求。此外,用户可能对如何解决这个问题感兴趣,所以需要提供相关的解题方法,并引用正确的来源。 还需要生成相关问题,这些问题应该围绕题目本身,比如解题技巧、优化方法等。要确保问题与编程相关,避免误解。最后,确保回答结构清晰,符合用户的要求,使用中文,正确使用LaTeX格式,并添加引用标识。</think>关于东华大学OJ平台中的“暗恋”相关讨论,经查阅资料显示,该名称实际指向一个**二维数组算法题目**[^3]。题目要求判断二维矩阵中是否存在纯色正方形区域(即所有元素值相同),并找到最大面积。以下是核心信息整理: --- ### 题目解析 1. **输入要求** 输入二维布尔数组(`0`或`1`),表示矩阵元素值。例如: ```cpp 3 3 0 0 1 0 0 1 1 1 1 ``` 2. **算法思路** - **递归判断**:从最大可能边长(`min(行数,列数)`)开始,逐步缩小范围验证是否存在符合条件的正方形。 - **纯色判定**:对每个候选区域遍历检查元素一致性,若存在不同值则跳过。 - **边界处理**:需注意二维数组作为函数参数传递时,必须指定第二维长度(如`bool matrix[][100]`),否则会引发编译错误。 3. **代码实现难点** - 递归函数需动态划分正方形区域; - 时间复杂度优化(避免重复计算); - 二维数组传递时的语法限制。 --- ### 相关问题 1. 如何优化“暗恋”题目的递归算法以减少重复计算? 2. 若矩阵规模较大(如1000×1000),递归方法是否可行?是否有替代方案? 3. 如何将二维数组的动态传递问题应用于其他OJ题目(如棋盘覆盖、图像处理)? --- 若需完整代码实现或进一步分析,可参考东华OJ相关题解。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值