当前位置: 首页 > news >正文

ACwing题目分享 756

这个题看起来比较简单,但实际上有些思维难度,现在想到的是模拟法,我们可以设好边界,然后从左上角开始遍历,沿着题目要求的顺序,沿着top left right bottom这四个边依次来做。

模拟过程有很多坑,比如边界问题。我采用的是把遍历一次过后,把这个调节往里缩小一个单位。当两侧边界重合的时候结束循环。

每一个小的循环,需要考虑每一处的边界,是否重合。

上代码:

#include<bits/stdc++.h>
using namespace std;
int q[101][101];
//定义好边界
int main(){int n,m;cin>>n>>m;int left=0,right=m-1,top=0,bottom=n-1;int k=1;while(left<=right||top<=bottom){//先模拟第一行 topfor(int j=left;j<=right&&top<=bottom;j++){q[top][j]=k++;}top++;//模拟最后一列 rightfor(int i=top;i<=bottom&&left<=right;i++){q[i][right]=k++;}right--;//模拟最后一行 bottomfor(int j=right;j>=left&&top<=bottom;j--){q[bottom][j]=k++;}bottom--;//模拟第一列 leftfor(int i=bottom;i>=top&&left<=right;i--){q[i][left]=k++;}left++;}//输出for(int i=0;i<n;i++){for(int j=0;j<m;j++){cout<<q[i][j]<<" ";}cout<<endl;}return 0;
}


http://www.mrgr.cn/news/49041.html

相关文章:

  • 正则表达式的常用示例
  • 泛谈阿里vs美团订单存储架构演进
  • FileZilla的简单使用
  • java 基础
  • 文本处理工具
  • 使用 turtle 库绘制花朵(包括花瓣、花茎和叶子)图形
  • 代码随想录算法训练营第41天| 300.最长递增子序列, 674. 最长连续递增序列 ,718. 最长重复子数组
  • 等保测评:企业网络安全的关键一环
  • Keyword Arguments(关键字参数)
  • Oracle 11g 常用基本参数优化设置:基于 Java 实现的实践与分析
  • 见微知著:OpenEuler系统启动流程
  • 探索 OpenAI 的 Swarm:一个用于多代理系统的实验性框架
  • 虚幻闪烁灯光材质
  • AI金融攻防赛:金融场景凭证篡改检测(DataWhale组队学习)
  • 【最优化方法】最速下降法
  • 百度搜索引擎(SEO)优化师的未来将何去何从?
  • QD1-P24 CSS 组合选择器
  • computed和watch的区别
  • windows C++-在启用 COM 的应用程序中使用并发(三)
  • 『网络游戏』摄像机跟随【31】客