C++学习之路 | PTA乙级—— 1050 螺旋矩阵 (25 分)(精简)

1050 螺旋矩阵 (25 分)
本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N;m≥n;且 m−n 取所有可能值中的最小值。
输入格式:

输入在第 1 行中给出一个正整数 N,第 2 行给出 N 个待填充的正整数。所有数字不超过 10
​4
​​ ,相邻数字以空格分隔。
输出格式:

输出螺旋矩阵。每行 n 个数字,共 m 行。相邻数字以 1 个空格分隔,行末不得有多余空格。
输入样例:

12
37 76 20 98 76 42 53 95 60 81 58 93
输出样例:

98 95 93
42 37 81
53 20 76
58 60 76

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
using namespace std;
bool cmp(int a, int b)
{return a > b;
}
int main()
{int n,h,l;cin >> n;vector<int>v(n);for (int i = 0; i < n; i++){cin >> v[i];}sort(v.begin(), v.end(), cmp);for (int i = (int)sqrt(n); i <= n; i++) {if (n % i == 0) {h = i > (double)sqrt(n) ? i : n / i; //哈哈这里就算这样写也不要紧:(double)sqrt(21) l = n / h;break;}}int** a = new int* [h];for (int i = 0; i < h; i++){a[i] = new int[l];}for (int i = 0; i < h; i++){for (int j = 0; j < l; j++){a[i][j] = 0;}}int cnt = 0;int i = 0, j = 0;while (cnt < v.size()){for (j; j < l; j++){if (a[i][j] == 0){a[i][j] = v[cnt++];}else{break;}}j--;i++;for (i; i < h; i++){if (a[i][j] == 0){a[i][j] = v[cnt++];}else{break;}}i--;j--;for (j; j >= 0; j--){if (a[i][j] == 0){a[i][j] = v[cnt++];}else{break;}}j++;i--;for (i; i >=0; i--){if (a[i][j] == 0){a[i][j] = v[cnt++];}else{break;}}i++;j++;}for (int i = 0; i < h; i++){for (int j = 0; j < l; j++){if (j == 0)cout << a[i][j];elsecout << " " << a[i][j];}cout << endl;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

站在巨人的肩膀上,C++开源库大全

来源&#xff1a;http://blog.csdn.net/chen19870707/article/details/40427645 程序员要站在巨人的肩膀上&#xff0c;C拥有丰富的开源库&#xff0c;这里包括&#xff1a;标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 值得学习的C语言开…

C#中注释的方法

/*......*/ 试用于大段代码的注释 // 一般注释 /// XML注释 ----------------------养成给代码写注释的好习惯 转载于:https://www.cnblogs.com/williamlyf/archive/2008/04/04/1137740.html

物联网技术在智能医疗领域的应用与发展

来源&#xff1a; 传感器技术应对人口结构高龄化所带来的长期照护需求&#xff0c;各国政府纷纷拟定政策&#xff0c;希望利用Wi-Fi、蓝牙、3G、GPS及RFID等物联网技术&#xff0c;架构起移动式医疗网络;且在远距照护等议题发酵下&#xff0c;也带动医疗产业结合物联网进入下一…

掌控谈话~确保执行

谈判成功了&#xff0c;但是谈判结果却没有执行&#xff0c;那么谈判也是失败的。 谈判结束的时候&#xff0c;执行结果可以从言语&#xff08;7%&#xff09;、语调&#xff08;38%&#xff09;、肢体语言与表情&#xff08;55%&#xff09;看出来。即使是言语上是达成了共同…

xmlHttpRequest无刷新验证用户名

现在好多网站上的注册都用了无刷新验证用户名,这种效果咋看感觉很复杂很难实现,其实它里面用到了Ajax中的核心xmlHttpRequest这个类,如果只是单单想实现这个效果,压根就不用引用Ajax.Net中的组件,因为感觉有点大材小用,下面是具体实现这种效果的方法,希望能给初学Ajax的朋友带来…

C++学习之路 | PTA乙级—— 1051 复数乘法 (15 分)(精简)

1051 复数乘法 (15 分) 复数可以写成 (ABi) 的常规形式&#xff0c;其中 A 是实部&#xff0c;B 是虚部&#xff0c;i 是虚数单位&#xff0c;满足 i ​2 ​​ −1&#xff1b;也可以写成极坐标下的指数形式 (Re ​(Pi) ​​ )&#xff0c;其中 R 是复数模&#xff0c;P 是辐角…

如何理解和评价机器学习中的表达能力、训练难度和泛化性能

来源&#xff1a; Eric Jang 的个人博客非常感谢王家兴 (Jiaxing Wang) 把这个博客文章翻译成中文。当我在阅读机器学习相关文献的时候&#xff0c; 我经常思考这项工作是否&#xff1a;提高了模型的表达能力&#xff1b;使模型更易于训练&#xff1b; 提高了模型的泛化性能。在…

数据库连接 未将对象引用到实例

原来的连接server.;databasetest;uidsa;pwdsa;解决方案"Data Source数据库地址;Initial Catalog数据库名;User ID用户名;Password密码";不知道原因&#xff0c;谁知道告诉我&#xff01;谢谢&#xff01; 转载于:https://www.cnblogs.com/cangqiong/archive/2008/04/…

C++学习之路 | PTA乙级—— 1052 卖个萌 (20 分)(精简)

1052 卖个萌 (20 分) 萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见&#xff0c;我们假设一个表情符号是按下列格式输出的&#xff1a; 左手[右手] 现给出可选用的符号集合&#xff0c;请你按用户的要求输出表情。 输入格式&#xff1a; 输入首先在前…

谷歌公布72位量子比特处理器,吹响量子霸权冲锋号

作者&#xff1a;杨晓凡谷歌量子 AI 实验室今天发布了新的 72 位量子比特的量子处理器 Bristlecone。虽然目前还没有看到具体的实验结果&#xff0c;但这块芯片的未来有很大潜力&#xff0c;很有可能达成量子计算领域内的重要里程碑。谷歌量子 AI 实验室&#xff08;Google Qua…

oracle查询语句大全(oracle 基本命令大全一)

来源&#xff1a;http://www.jb51.net/article/40467.htm 1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权 grant connect,resource,dba,sysdba to username; 3.connect username/password/…

掌控谈话~拔刺(说出你对我的指控)

适用于发生重大错误的时候&#xff0c;尤其是责任都在自己身上的情况。 在出现重大错误的时候&#xff0c;在谈话的开始&#xff0c;就直接讲明错误的具体情况&#xff0c;给对方带来的损失&#xff0c;把问题分析透彻&#xff0c;主动承认自己的各种问题和错误&#xff0c;主…

数组竟然可以这样定义

//这是常规思路: constarr: array[0..1] of Char (A,B); beginShowMessage(arr); {AB}ShowMessage(IntToStr(Length(arr))); {2} end;//没想到可以这样: constarr: array[Boolean] of Char (A,B); beginShowMessage(arr); {AB}ShowMessa…

C++学习之路 | PTA乙级—— 1055 集体照 (25 分)(精简)

1055 集体照 (25 分) 拍集体照时队形很重要&#xff0c;这里对给定的 N 个人 K 排的队形设计排队规则如下&#xff1a; 每排人数为 N/K&#xff08;向下取整&#xff09;&#xff0c;多出来的人全部站在最后一排&#xff1b; 后排所有人的个子都不比前排任何人矮&#xff1b; 每…

AI可以在游戏里称霸,但是解决现实问题太难了

来源&#xff1a;36氪据《大西洋月刊》报道&#xff0c;直到最近&#xff0c;那些能在各类游戏中击败人类冠军的机器&#xff0c;解决现实问题太难了。1997年&#xff0c;为了在国际象棋中击败象棋大师加里卡斯帕罗夫&#xff08;Garry Kasparov&#xff09;&#xff0c;IBM的工…

C++常用字符串分割方法

From&#xff1a;http://www.jb51.net/article/55954.htm 1. 用strtok函数进行字符串分割 原型&#xff1a; char *strtok(char *str, const char *delim); 功能&#xff1a; 分解字符串为一组字符串。 参数说明&#xff1a;str为要分解的字符串&#xff0c;delim为…

C# 根据中文得到全拼

C#源码下载转载于:https://www.cnblogs.com/goldnet/archive/2008/04/25/1170420.html

软件系统架构~软件架构概念

1、系统的架构定义了它的静态结构、动态结构、外部可见行为、质量属性以及应该引导其设计和发展的原则&#xff1b; 2、系统的候选架构是有可能展现出系统所需要的外部可见行为和质量属性的架构。选择最佳方案则是架构师的职责所在&#xff1b; 3、架构元素时系统的组成部分&…

C++学习之路 | PTA乙级—— 1056 组合数的和 (15 分)(精简)

1056 组合数的和 (15 分) 给定 N 个非 0 的个位数字&#xff0c;用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8&#xff0c;则可以组合出&#xff1a;25、28、52、58、82、85&#xff0c;它们的和为330。 输入格式…

大话设计模式-策略模式与简单工厂模式

来源&#xff1a;http://blog.csdn.net/wulingmin21/article/details/6712684 策略模式定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 例如&#xff1a; CashNormal、CashRebate…