简单模拟。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#include<queue>
#include<string>
#include<algorithm>
using namespace std; const int maxn=+;
int N,a[maxn];
int ans[maxn];
int m,n;
int dir[][]; void f()
{
dir[][]=;dir[][]=;
dir[][]=;dir[][]=;
dir[][]=;dir[][]=-;
dir[][]=-;dir[][]=;
} bool cmp(const int&a,const int&b)
{
return a>b;
} int main()
{
scanf("%d",&N);
f();
for(int i=;i<=N;i++) scanf("%d",&a[i]);
sort(a+,a++N,cmp); for(int i=sqrt(1.0*N);i>=;i--)
if(N%i==){n=i,m=N/i;break;} memset(ans,-,sizeof ans);
for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
ans[(i-)*n+j]=; int nowDir=;
int nowX=,nowY=;
for(int i=;i<=N;i++)
{
ans[(nowX-)*n+nowY]=a[i];
int NewX=nowX+dir[nowDir][];
int NewY=nowY+dir[nowDir][];
if(ans[(NewX-)*n+NewY]!=||NewX<=||NewX>=m+||NewY<=||NewY>=n+) nowDir=(nowDir+)%;
nowX=nowX+dir[nowDir][];
nowY=nowY+dir[nowDir][];
}
int num=;
// for(int i=1;i<=m*n;i++) printf("%d ",ans[i]); for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
{
printf("%d",ans[num++]);
if(j<n) printf(" ");
else printf("\n");
}
return ;
}

PAT (Advanced Level) 1105. Spiral Matrix (25)的更多相关文章

  1. 【PAT甲级】1105 Spiral Matrix (25分)

    题意:输入一个正整数N(实则<=1e5),接着输入一行N个正整数(<=1e4).降序输出螺旋矩阵. trick: 测试点1,3运行超时原因:直接用sqrt(N)来表示矩阵的宽会在N是素数时 ...

  2. 1105. Spiral Matrix (25)

    This time your job is to fill a sequence of N positive integers into a spiral matrix in non-increasi ...

  3. PAT甲题题解-1105. Spiral Matrix (25)-(模拟顺时针矩阵)

    题意:给定N,以及N个数.找出满足m*n=N且m>=n且m-n最小的m.n值,建立大小为m*n矩阵,将N个数从大到下顺时针填入矩阵中. #include <iostream> #in ...

  4. PAT (Advanced Level) 1114. Family Property (25)

    简单DFS. #include<cstdio> #include<cstring> #include<cmath> #include<vector> # ...

  5. PAT (Advanced Level) 1109. Group Photo (25)

    简单模拟. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #i ...

  6. PAT (Advanced Level) 1101. Quick Sort (25)

    树状数组+离散化 #include<cstdio> #include<cstring> #include<cmath> #include<map> #i ...

  7. PAT (Advanced Level) 1071. Speech Patterns (25)

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...

  8. PAT (Advanced Level) 1063. Set Similarity (25)

    读入之后先排序. 询问的时候可以o(m)效率得到答案. #include<cstdio> #include<cstring> #include<cmath> #in ...

  9. PAT (Advanced Level) 1059. Prime Factors (25)

    素因子分解. #include<iostream> #include<cstring> #include<cmath> #include<algorithm& ...

随机推荐

  1. HttpServletResponse应用----生成验证码

    1.1生成随机图片用作验证码 生成图片主要用到BufferedImage类 package gacl.response.study;import java.awt.Color;import java. ...

  2. 。◕‿◕。TMD

    。◕‿◕。TMD TimeLimit: 2000/1000 MS (Java/Others)  MenoryLimit: 32768/32768 K (Java/Others) 64-bit inte ...

  3. Stash安装和破解

    参考资料: http://www.unxmail.com/?p=590 上篇介绍了,Atlassian Stash v2.12.1 破解版的下载, 有同学不会安装. 我重新整理了下文档. 表述我的安装 ...

  4. WCF部署在IIS上

    WCF部署在IIS上 环境vs2010,WCF应用程序.如何将WCF部署在IIS上. 第一步:右键点击项目,选择生成部署包. 第二步:在你项目所在的文件目录下找到Package文件夹,这就是我们的部署 ...

  5. Xib学习之(1)

    刚学xib就遇到一个问题 最后还是朋友帮忙解决了 就是在设置约束时,设置的是左右约束为0,可是最后弄出来却是左右边界都空出来了16 解决办法: 具体原因应该是iOS8 之后UIView又多了个属性:l ...

  6. Silverlight程序中访问配置文件

    以下代码为本人在一Silverlight程序中访问Web端配置文件的代码: private void GetLoadNeed() { // 项目名称读取配置文件 WebClient wcConfigX ...

  7. sort 排序详解

    http://www.qdfuns.com/notes/17398/c56832f62b3271e79671f77dcdd2c058.html. http://www.qdfuns.com/notes ...

  8. python 九九乘法表!小练习

    # 1*1 = 1 # 1*2 = 2 2*2 = 4 # 1*3 = 3 2*3 = 6 3*3 = 9 i = 1 j = 1 for j in range(1,10): for i in ran ...

  9. kindle网络爬虫续集

    简单介绍: 这次我们要爬的网页是:Kindle商店中的今日特价书,其中每周/每月特价书同理,就不再重复了选择这个网页的原因有两个:一是实用,很多人都会经常去看看Kindle特价书有没有自己喜欢的:二是 ...

  10. mipi 调试经验(转)

    以下是最近几个月在调试 MIPI DSI / CSI 的一些经验总结,因为协议有专门的文档,所以这里就记录一些常用知识点: 一.D-PHY 1.传输模式 LP(Low-Power) 模式:用于传输控制 ...