本部校赛 蛇形填数(二)problen1338
Description
如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
Sample Input
2 3
3 4
Sample Output
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的更多相关文章
- <蛇形填数>--算法竞赛 入门经典(第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 ...
- 【OI】蛇形填数题的深入探究
题目:在 n×n 方阵里填入 1,2,...n×n, 要求蛇形填数.例如,n=4 时方阵为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 ...
- ACM 蛇形填数
蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为:10 11 12 19 16 1 ...
- nyoj 33 蛇形填数
蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 ...
- ny33 蛇形填数
蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 1 ...
- 【ACM】蛇形填数 - 逻辑怪
蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为:10 11 12 19 16 1 ...
- 梦工厂实验室 蛇形填数 dfs
问题 D: 蛇形填数 时间限制: 3 Sec 内存限制: 64 MB提交: 28 解决: 5[提交][状态][讨论版] 题目描述 在n*n方阵里填入1,2,...,n*n,要求填成蛇形.例如n=4 ...
- nyoj_33_蛇形填数_201308221636
蛇形填数时间限制:3000 ms | 内存限制:65535 KB 难度:3描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为:10 11 12 19 16 13 28 ...
- nyoj33 蛇形填数
蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描写叙述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.比如n=4时方陈为: 10 11 12 1 9 16 ...
随机推荐
- Java 网络编程---分布式文件协同编辑器设计与实现
目录: 第一部分:Java网络编程知识 (一)简单的Http请求 一般浏览网页时,使用的时Ip地址,而IP(Internet Protocol,互联网协议)目前主要是IPv4和IPv6. IP地址是一 ...
- 在fedora 20下使用ssh server
在红帽和centos下,一般安装完后会自带ssh,然后可以通过/etc/init.d/sshd start的方式运行,但是在Fedora 20下,系统改用了另外一套服务开启机制. 首先安装ssh se ...
- wordpress显示多个分类的文章
显示多个分类下的文章可以这样提取: <?php query_posts(array('posts_per_page'=>10,'orderby'=>'rand','category_ ...
- ADT 连接手机运行android应用程序时报错
The connection to adb is down, and a severe error has occured. You must restart adb and Eclipse. ...
- HDU 4405 Aeroplane chess(期望)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4405 题意:从0走到n,每次走之前掷一次筛子,掷出几点就向前走几点,走到大于等于n的地方就停止.但是, ...
- Advanced Bash-Scripting Guide
在UC Berkeley 课程代号CS9E上看到的资源 http://www-inst.eecs.berkeley.edu/~selfpace/studyguide/cs9e/ http://www. ...
- 使用linux系统做路由转发
使用linux系统(PC机)做路由转发 关键字:linux,Fedora,route,iptables,ip_forward 最近做网络实验,在实验过程中需要用到linux的转发功能,但是遇到一些问题 ...
- 【CF689D Friends and Subsequences】二分搜索,区间查询
题意:给定两个整数序列a,b,将a,b对齐,问有多少个区间满足a的区间内最大值等于b的区间内最小值. 数据范围:区间长度n属于[1, 200000],序列中的元素在整型范围内 思路:枚举所有n*(n+ ...
- javascript运算符整理
说起运算符,基本上各类编程语言中都会涉及,使用方法大同小异.今天在这里以javascript做简单的整理. 总得来说运算符还是比较的多,大致可以分为以下几种类型: 一元运算符 位运算符 布尔运算符 乘 ...
- 在Unity3d编辑器中加入菜单以及菜单项
在引用UZGUI插件时,u3d编辑器的菜单条发生了变化,新增了菜单和菜单项,于是乎自己也像尝试一下,看了EZGUI的About_EZ_GUI脚本文件后,结果大出我所料,原来SO EASY! using ...