Problem Description

输出n*m的回型矩阵

Input

多组测试数据
每组输入2个整数 n和m(不大于20)

Output

输出n*m的回型矩阵,要求左上角元素是1,(每个元素占2个位置,靠右)

Sample Input

4 3

Sample Output

 1  2  3
10 11 4
9 12 5
8 7 6
 #include<iostream>
#include<string.h>
#include<iomanip>
using namespace std;
int main()
{
int m,n,i,j,k,lastX,lastY;
while(cin>>m>>n)
{
int **a=new int*[m];
for(i=;i<m;i++)
{
*(a+i)=new int[n];
memset(a[i],,n*sizeof(int));
}
i=,j=,k=;
int state=;//0 为从左到右赋值,1为从上到下,2为从右到左,3为从下到上
while(k<m*n)
{//要赋值m*n次
switch(state)
{
case :
for(;j<n;++j)
{
if(a[i][j]==)
{
a[i][j]=k+;
++k;
lastX=i;
lastY=j;//记录下一次赋值开始位置
}
}
i=lastX+;
j=lastY;
state=;
break;
case :
for(;i<m;++i)
{
if(a[i][j]==)
{
a[i][j]=k+;
++k;
lastX=i;
lastY=j;
}
}
i=lastX;
j=lastY-;
state=;
break;
case :
for(;j>=;--j)
{
if(a[i][j]==)
{
a[i][j]=k+;
++k;
lastX=i;
lastY=j;
}
}
i=lastX-;
j=lastY;
state=;
break;
case :
for(;i>=;--i)
{
if(a[i][j]==)
{
a[i][j]=k+;
++k;
lastX=i;
lastY=j;
}
}
i=lastX;
j=lastY+;
state=;
break;
default:
break;
} } for(i=;i<m;i++)
{
for(j=;j<n;j++)
if(j==)
{
cout<<setw()<<a[i][j];
}
else
{
cout<<setw()<<a[i][j];
}
cout<<endl;
delete []a[i];
}
delete []a; }
return ;
}

武汉科技大学ACM:1008: 零起点学算法64——回型矩阵的更多相关文章

  1. 武汉科技大学ACM :1008: 零起点学算法58——开灯问题

    Problem Description 计算中心有8个机房,每个机房有n台电脑.每台电脑都有一个编号,比如8号机房编号就为H1到Hn,我们有时又称为H1为1号机器,H2为2号机器,.... 有一天我们 ...

  2. WUOJ-ACM :1003: 零起点学算法78——牛牛

    武汉科技大学ACM :1003: 零起点学算法78--牛牛Problem Description牛牛是一种纸牌游戏,总共5张牌,规则如下: 如果找不到3张牌的点数之和是10的倍数,则为没牛: 如果其中 ...

  3. 1163: 零起点学算法70——Yes,I can!

    1163: 零起点学算法70--Yes,I can! Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: ...

  4. 1164: 零起点学算法71——C语言合法标识符(存在问题)

    1164: 零起点学算法71——C语言合法标识符 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 10 ...

  5. 1147: 零起点学算法54——Fibonacc

    1147: 零起点学算法54--Fibonacc Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 20 ...

  6. 1145: 零起点学算法52——数组中删数II

    1145: 零起点学算法52--数组中删数II Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 293 ...

  7. 1137: 零起点学算法44——多组测试数据输出II

    1137: 零起点学算法44--多组测试数据输出II Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: ...

  8. 1136: 零起点学算法43——多组测试数据输出I

    1136: 零起点学算法43--多组测试数据输出I Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lldSubmitted: ...

  9. 1135: 零起点学算法42——多组测试数据(求和)IV

    1135: 零起点学算法42--多组测试数据(求和)IV Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted ...

随机推荐

  1. springmvc 参数绑定

    1. httpservletrequest request request.getParameter("a")方法去取参数 用注解@RequestParam绑定请求参数 用注解@R ...

  2. 《30天自制操作系统》读书笔记(3) 引入C语言

    这一次的学习相当曲折, 主要是因为粗心, Makefile里面的错误导致了文件生成出现各种奇奇怪怪的问题, 弄得心力交瘁, 因此制作过程还是尽量按着作者的路子来吧. 作者提供的源码的注释在中文系统下是 ...

  3. DZY Loves Colors

    CF #446C:http://codeforces.com/problemset/problem/444/C 题意:给你n个数,大小从1到n,然后又两种操作,1 a b c表示把区间a b 更新为c ...

  4. C51与汇编语言混合编程

    函数内部混合编程 若想在C语言函数内部使用汇编语言,应使用以下Cx51编译器控制命令: #pragma asm ; Assembly code #pragma endasm  功能作用:asm和end ...

  5. UVA253 Cube painting(数学)

    题目链接. 分析: 用的<训练指南>上的方法.详见P17. 从6个面中选一个做顶面,再从剩下的4个面中选1个做正面,则此正方体唯一确定. 需要枚举共6*4=24种. #include &l ...

  6. BZOJ1174: [Balkan2007]Toponyms

    1174: [Balkan2007]Toponyms Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 117  Solved: 16[Submit][S ...

  7. 【Java解惑】表达式问题

    1. 如果判断一个参数是否是奇数? 我们通过下面代码来尝试一下,看看方法可行不: public static boolean isOdd(int i) { return i % 2 == 1; } p ...

  8. Sqlserver2012 alwayson部署攻略

    http://wenku.baidu.com/link?url=3Gl5nwxE6Rq4ZKGaKWpYZ1D4OdwVLcVeMoGTOmFSILDJzanPy9fwMPRwr7CRu4HhDzXr ...

  9. [Design Pattern] Service Locator Pattern 简单案例

    Service Locator Pattern,即服务定位模式,用于定位不同的服务.考虑到 InitialContext::lookup 的成本比较高,提供了 Cache 类缓存以定位到的服务. 代码 ...

  10. [Design Pattern] Adapter Pattern 简单案例

    Adapter Pattern, 即适配器模式,用于连接两个不兼容的接口,属于结构类的设计模式. 或者叫做,转换器模式. 下面是一个转换器模式简单案例. 假设已有 AudioPlayer 专门播放 m ...