题解:洛谷 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 ...... ..... ..... ..... ..... ..... ......

相关新闻

kubernetes(K8s)学习笔记:第八期与第九期核心知识点自测与详解

kubernetes(K8s)学习笔记:第八期与第九期核心知识点自测与详解

kubernetes(K8s)学习笔记:第八期与第九期核心知识点自测与详解 本自测解析针对 Kubernetes 系列第八期(集群治理与控制(上篇):网络策略——NetworkPolicy)和第九期(集群治…

2026/7/5 1:01:27阅读更多 →
软件测试智能化升级与落地实践

软件测试智能化升级与落地实践

在大型项目的迭代周期中,测试团队往往面临着一种尴尬的“剪刀差”:业务需求的增长速度呈指数级上升,而测试人力的投入却只能线性增加。很多资深测试工程师都有过这样的经历:为了覆盖一个新功能,需要手动编写几十条用例…

2026/7/5 1:01:27阅读更多 →
四大核心视频孪生底层技术专题解析:拓扑图谱打通跨镜全域连续轨迹,分区并行实现超大实景实时重建;空间大模型驱动AI前置风险推演,SpaceOS底座统一四维孪生算力根基。四大技术体系原生耦合闭环,构筑

四大核心视频孪生底层技术专题解析:拓扑图谱打通跨镜全域连续轨迹,分区并行实现超大实景实时重建;空间大模型驱动AI前置风险推演,SpaceOS底座统一四维孪生算力根基。四大技术体系原生耦合闭环,构筑

编制单位:镜像视界浙江科技有限公司 产学研资质:国家十四五时空大数据重点课题、镜像视界浙江普陀时空大数据应用技术联合研究院联合研发、河南省电检院全工况权威认证 统一底层基座:SpaceOS™四维全域空间操作系统,全栈自研算子闭…

2026/7/5 1:01:27阅读更多 →
终极指南:让旧Mac焕发新生的5步完整方案

终极指南:让旧Mac焕发新生的5步完整方案

终极指南:让旧Mac焕发新生的5步完整方案 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台被苹果官方放弃支持的旧款Mac,无…

2026/7/5 2:01:30阅读更多 →
基于PyTorch与梅尔频谱的音频分类实战:从数据预处理到模型部署

基于PyTorch与梅尔频谱的音频分类实战:从数据预处理到模型部署

1. 音频分类项目概述音频分类是机器学习中一个非常有趣的应用领域,它可以让计算机学会识别不同种类的声音。想象一下,你的智能音箱能够区分门铃声和狗叫声,或者你的手机能自动识别播放的音乐类型——这些都是音频分类技术的实际应用。在这个项…

2026/7/5 2:01:30阅读更多 →
如何用DDU彻底清理显卡驱动:解决游戏卡顿和驱动冲突的完整指南

如何用DDU彻底清理显卡驱动:解决游戏卡顿和驱动冲突的完整指南

如何用DDU彻底清理显卡驱动:解决游戏卡顿和驱动冲突的完整指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-unin…

2026/7/5 2:01:30阅读更多 →
Python社交数据采集与热度分析实战指南

Python社交数据采集与热度分析实战指南

1. 项目背景与核心价值社交平台已经成为现代信息传播的主要渠道之一,每天产生海量的用户生成内容。这些数据中蕴含着丰富的社会动态和用户行为模式,通过技术手段挖掘这些信息,可以帮助我们理解热点事件的传播规律和影响力。Python作为数据采集…

2026/7/5 2:01:30阅读更多 →
Poly Haven Assets:让Blender资产浏览器拥有无限资源库

Poly Haven Assets:让Blender资产浏览器拥有无限资源库

Poly Haven Assets:让Blender资产浏览器拥有无限资源库 【免费下载链接】polyhavenassets A Blender add-on to integrate our assets natively in the asset browser 项目地址: https://gitcode.com/gh_mirrors/po/polyhavenassets 想象一下,你正…

2026/7/5 2:01:30阅读更多 →
JavaQuestPlayer:快速构建QSP游戏的完整开发平台终极指南

JavaQuestPlayer:快速构建QSP游戏的完整开发平台终极指南

JavaQuestPlayer:快速构建QSP游戏的完整开发平台终极指南 【免费下载链接】JavaQuestPlayer 项目地址: https://gitcode.com/gh_mirrors/ja/JavaQuestPlayer JavaQuestPlayer是一款专为QSP(Quest Soft Player)游戏设计的JavaSE开发平…

2026/7/5 1:56:30阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/5 1:30:27阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/4 2:33:55阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/4 2:33:55阅读更多 →