Description

萌萌哒cy学姐参加去年的新生杯的时候,蛇形矩阵那题被她分分钟秒掉,于是她决定出一个更难的题目,她要求矩阵里的每个数都是质数,当然,蛇形的规则也略有变化

如2*3矩阵:

2 7 11

3 5 13

再如3*4的矩阵

2 13 17 37

3 11 19 31

5 7 23 29

Input

第一行为一个正整数T,表示数据的组数,接下来T行,每行两个正整数n,m,表示矩阵有n行m列

Output

对于每一个输入输出n行,每行m个数,表示这个矩阵,输出内容见题目描述,每个数输出宽度为6

Sample Input

2
2 3
3 4

Sample Output

     2     7    11
     3     5    13
     2    13    17    37
     3    11    19    31
     5     7    23    29

Hint

1<=n,m<=100

超时代码:哭晕

 #include<stdio.h>
#include<string.h>
#include<math.h>
int zhi(int num)
{
int i,j,p,h=;
static int k=;
for(i=k;;i++)
{
int p=sqrt(i);
for(j=;j<=p;j++)
{
if(i%j==)
break;
}
if(j<=p)
continue;
k=i+;
return i;
}
}
int main()
{ int a[][];
int m,n,x,y;
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&m,&n);
{
memset(a,,sizeof(a));
int count=;
a[x=][y=]=;
while()
{
while(!a[x+][y]&&x+<m)
a[++x][y]=zhi(++count);
while(!a[x][y+]&&y+<n)
a[x][++y]=zhi(++count);
while(!a[x-][y]&&x->=)
a[--x][y]=zhi(++count);
while(!a[x][y-]&&y->=)
a[x][--y]=zhi(++count);
if(count==m*n-)
break;
}
for(x=;x<m;x++)
{
for(y=;y<n;y++)
printf("%6d",a[x][y]);
printf("\n");
}
}
} }

AC代码

 #include<stdio.h>
#include<string.h>
#include<math.h>
int b[];
int z()//求素数
{
int i,j,count=;
for(i=;;i++)
{
int k=sqrt(i);
for(j=;j<=k;j++)
{
if(i%j==)
break;
}
if(j<=k)
continue; b[count]=i;
count++;
if(count==)
break;
}
}
int main()
{ int a[][];
int m,n,x,y;
int T;
scanf("%d",&T);
z();
while(T--)
{
scanf("%d%d",&m,&n); memset(a,,sizeof(a));
int count=;
a[x=][y=]=;
while(count<m*n-)
{
while(!a[x+][y]&&x+<m)
a[++x][y]=b[++count];
while(!a[x][y+]&&y+<n)
a[x][++y]=b[++count];
while(!a[x-][y]&&x->=)
a[--x][y]=b[++count];
while(!a[x][y-]&&y->=)
a[x][--y]=b[++count];
}
for(x=;x<m;x++)
{
for(y=;y<n;y++)
printf("%6d",a[x][y]);
printf("\n");
} } }

本部校赛 蛇形填数(二)problen1338的更多相关文章

  1. <蛇形填数>--算法竞赛 入门经典(第2版)- 3.1 数组 程序3-3 蛇形填数

     蛇形填数: 在n×n方阵里填入1,2,....,n×n,要求填成蛇形.例如,n = 4 时方阵为:    10  11  12  1   9  16  13  2 8  15  14  3 7   ...

  2. 【OI】蛇形填数题的深入探究

    题目:在 n×n 方阵里填入 1,2,...n×n, 要求蛇形填数.例如,n=4 时方阵为: 10  11  12  1 9    16  13  2 8    15  14  3 7     6  ...

  3. ACM 蛇形填数

    蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为:10 11 12 19 16 1 ...

  4. nyoj 33 蛇形填数

    蛇形填数 时间限制:3000 ms  |            内存限制:65535 KB 难度:3   描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 ...

  5. ny33 蛇形填数

    蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 1 ...

  6. 【ACM】蛇形填数 - 逻辑怪

    蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为:10 11 12 19 16 1 ...

  7. 梦工厂实验室 蛇形填数 dfs

    问题 D: 蛇形填数 时间限制: 3 Sec  内存限制: 64 MB提交: 28  解决: 5[提交][状态][讨论版] 题目描述 在n*n方阵里填入1,2,...,n*n,要求填成蛇形.例如n=4 ...

  8. nyoj_33_蛇形填数_201308221636

    蛇形填数时间限制:3000 ms  |  内存限制:65535 KB 难度:3描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为:10 11 12 19 16 13 28 ...

  9. nyoj33 蛇形填数

    蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.比如n=4时方陈为: 10 11 12 1 9 16 ...

随机推荐

  1. android 导航布局

    http://blog.csdn.net/wangjinyu501/article/details/8140588 http://www.cnblogs.com/hanyonglu/archive/2 ...

  2. mysql主从数据库复制

    http://blog.csdn.net/lgh1117/article/details/8786274 http://blog.csdn.net/libraworm/article/details/ ...

  3. 《Programming WPF》翻译 第5章 5.数据模板和样式

    原文:<Programming WPF>翻译 第5章 5.数据模板和样式 让我们想象一下我们想要实现TTT更有娱乐性的一个版本(这是大部分游戏中最重要的特色).例如,TTT的一种变体允许玩 ...

  4. Android模仿微信语音聊天功能

    项目效果如下: 项目目录结构如下: 代码如下: AudioManager.java import java.io.File; import java.io.IOException; import ja ...

  5. SqlServer 使用小技巧

    1.在sqlserver下直接画ER图 步骤:点击数据关系图 右击新建数据关系图这样就ok 了 2,查看表的设计结构或表中的数据 步骤:右击选择设计或查看前百行 3,监测程序对数据库的操作 点击工具 ...

  6. codility上的问题 (22)

    问题描述: 用1 * 1, 1 * 2的矩形覆盖一个n行m列的矩形,问有多少种方法. 数据范围 : n [1..10^6],  m [ 1..7] 要求复杂度: 时间  O(log(n) * 8 ^m ...

  7. 【转】(总结)Linux下su与su -命令的本质区别

    原文网址:http://www.ha97.com/4001.html 本人以前一直习惯直接使用root,很少使用su,前几天才发现su与su -命令是有着本质区别的! 大部分Linux发行版的默认账户 ...

  8. win10无法使用内置管理员账户打开

    对于这种问题其实对于专业版用户倒不是难事,很容易解决,具体方法如下: 首先WIN+R输入:gpedit.msc,打开组策略,找到“计算机配置”里面的“Windows设置”,打开“安全设置” -> ...

  9. maven 工作原理和添加jar包技巧

        相 信只要做过 Java 开发的童鞋们,对 Ant 想必都不陌生,我们往往使用 Ant 来构建项目,尤其是涉及到特别繁杂的工作量,一个 build.xml 能够完成编译.测试.打包.部署等很多 ...

  10. linux经常使用命令:打包、复制等

    备份文件 tar -cf /home/app20140703bak.tar /home/app/uat/test.war 拷贝文件到目标目录 例示: cp -af /app/wasapp/appnam ...