新闻详情

新闻详情

首页 / 资讯中心 / 详情

题解:洛谷 B4554 [GESP202606 二级] 菱形

发布时间:2026/11/5 0:32:11来源:尧图网络
题解:洛谷 B4554 [GESP202606 二级] 菱形
【题目来源】洛谷B4554 [GESP202606 二级] 菱形 - 洛谷【题目描述】给定正整数n nn在( 2 n − 1 ) × ( 2 n − 1 ) (2n - 1) \times (2n - 1)(2n−1)×(2n−1)个网格的画布中使用字符画一个边长为n nn个网格的菱形。其中空白网格使用⋅ \cdot⋅表示菱形边所在的网格用 表示。例如当n 3 n 3n3时图形如下.... ... ... ... ....【输入】输入一个正整数n nn【输出】输出2 n − 1 2n - 12n−1行表示按要求画的菱形。【输入样例】4【输出样例】...... ..... ..... ..... ..... ..... ......【核心思想】问题分析给定正整数n nn在( 2 n − 1 ) × ( 2 n − 1 ) (2n-1) \times (2n-1)(2n−1)×(2n−1)的画布上绘制边长为n nn的菱形边框。菱形中心位于画布中心( n , n ) (n, n)(n,n)边框由组成其余位置为.。关键观察是菱形的上半部分和下半部分关于中心行对称每行的出现在两个对称位置且距离中心列的偏移量随远离中心而增大。算法选择对称绘制法将菱形分为上半部分含中心行和下半部分含中心行利用对称性分别绘制边界收缩/扩展用双指针l ll和r rr表示当前行菱形边框的左右列坐标上半部分l ll递减、r rr递增下半部分同理关键步骤初始化画布创建( 2 n − 1 ) × ( 2 n − 1 ) (2n-1) \times (2n-1)(2n−1)×(2n−1)的字符矩阵全部填充为.确定中心中心位置为( n , n ) (n, n)(n,n)初始化l r n l r nlrn绘制上半部分i ii从1 11到n nn在( i , l ) (i, l)(i,l)和( i , r ) (i, r)(i,r)处标记l ← l − 1 l \leftarrow l - 1l←l−1r ← r 1 r \leftarrow r 1r←r1下一行菱形变宽绘制下半部分i ii从2 n − 1 2n-12n−1到n nn重置l r n l r nlrn从底部向中心行绘制在( i , l ) (i, l)(i,l)和( i , r ) (i, r)(i,r)处标记l ← l − 1 l \leftarrow l - 1l←l−1r ← r 1 r \leftarrow r 1r←r1上一行菱形变宽输出画布按行输出矩阵时间/空间复杂度时间复杂度O ( n 2 ) O(n^2)O(n2)初始化画布O ( n 2 ) O(n^2)O(n2)绘制边框O ( n ) O(n)O(n)输出O ( n 2 ) O(n^2)O(n2)空间复杂度O ( n 2 ) O(n^2)O(n2)存储( 2 n − 1 ) × ( 2 n − 1 ) (2n-1) \times (2n-1)(2n−1)×(2n−1)的画布矩阵对称绘制法的核心思想几何对称性利用菱形关于水平中心线和垂直中心线均对称因此只需计算一侧的坐标规律通过对称复制完成另一半双指针控制边界l ll和r rr从中心列向两侧扩展每行偏移量增加1 11精确刻画菱形边框的斜线特征斜率为± 1 \pm 1±1先填充后覆盖先将整个画布置为.再在特定位置覆盖避免复杂的条件判断简化绘制逻辑中心行重复绘制上半部分和下半部分的循环均包含中心行导致中心行的两个被绘制两次效果相同代码简洁但存在冗余适用于规则几何图形的字符画绘制尤其是具有对称性的多边形边框生成【算法标签】#普及- #模拟【代码详解】#includebits/stdc.husingnamespacestd;constintN20;// 常量数组最大尺寸chara[2*N][2*N];// a[i][j]: 画布上第 i 行第 j 列的字符intn;// n: 菱形边长intmain(){cinn;// 读入菱形边长 nfor(inti1;i2*n-1;i)// 初始化画布全部填充为 .for(intj1;j2*n-1;j)a[i][j].;// 空白网格用 . 表示intxn;// x: 菱形的中心行同时也是中心列intlx,rx;// l: 当前行菱形左边界列; r: 当前行菱形右边界列for(inti1;ix;i)// 绘制菱形的上半部分含中心行{a[i][l],a[i][r];// 在当前行左右边界标记 l--,r;// 下一行左边界左移右边界右移菱形逐渐变宽}lx,rx;// 重置左右边界到中心列for(inti2*n-1;ix;i--)// 绘制菱形的下半部分含中心行{a[i][l],a[i][r];// 在当前行左右边界标记 l--,r;// 上一行左边界左移右边界右移菱形逐渐变宽}for(inti1;i2*n-1;i)// 输出画布{for(intj1;j2*n-1;j)couta[i][j];// 输出第 i 行第 j 列的字符coutendl;// 每行输出后换行}return0;}【运行结果】4 ...... ..... ..... ..... ..... ..... ......
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/4 15:56:54

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/4 22:55:41

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/4 17:01:23

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/4 12:33:12

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/4 1:25:31

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/4 3:51:11

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉