武汉科技大学ACM:1008: 零起点学算法64——回型矩阵
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——回型矩阵的更多相关文章
- 武汉科技大学ACM :1008: 零起点学算法58——开灯问题
Problem Description 计算中心有8个机房,每个机房有n台电脑.每台电脑都有一个编号,比如8号机房编号就为H1到Hn,我们有时又称为H1为1号机器,H2为2号机器,.... 有一天我们 ...
- WUOJ-ACM :1003: 零起点学算法78——牛牛
武汉科技大学ACM :1003: 零起点学算法78--牛牛Problem Description牛牛是一种纸牌游戏,总共5张牌,规则如下: 如果找不到3张牌的点数之和是10的倍数,则为没牛: 如果其中 ...
- 1163: 零起点学算法70——Yes,I can!
1163: 零起点学算法70--Yes,I can! Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: ...
- 1164: 零起点学算法71——C语言合法标识符(存在问题)
1164: 零起点学算法71——C语言合法标识符 Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 10 ...
- 1147: 零起点学算法54——Fibonacc
1147: 零起点学算法54--Fibonacc Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 20 ...
- 1145: 零起点学算法52——数组中删数II
1145: 零起点学算法52--数组中删数II Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 293 ...
- 1137: 零起点学算法44——多组测试数据输出II
1137: 零起点学算法44--多组测试数据输出II Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: ...
- 1136: 零起点学算法43——多组测试数据输出I
1136: 零起点学算法43--多组测试数据输出I Time Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lldSubmitted: ...
- 1135: 零起点学算法42——多组测试数据(求和)IV
1135: 零起点学算法42--多组测试数据(求和)IV Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted ...
随机推荐
- java 代码格式(转)
//转至博客:http://developer.51cto.com/art/201202/320317.ht /** * Java编码格式个人推荐,参考JDK源码和Hyperic HQ源码(原spri ...
- ASP.NET状缓存Cache的应用-提高数据库读取速度
原文:ASP.NET状缓存Cache的应用-提高数据库读取速度 一. Cache概述 既然缓存中的数据其实是来自数据库的,那么缓存中的数据如何和数据库进行同步呢?一般来说,缓存中应该存放改 ...
- POJ2242 The Circumference of the Circle(几何)
题目链接. 题目大意: 给定三个点,即一个任意三角形,求外接圆的周长. 分析: 外接圆的半径可以通过公式求得(2*r = a/sinA = b/sinB = c/sinC),然后直接求周长. 注意: ...
- 【性能测试】【Jmeter】学习(1)
2013/8/6开始阅读Jmeter文档 2013/8/7总结 监听器——CSV Data Set Config 在Jmeter中添加一个CSV配置原件 CSV配置原件添加方法:(右键点击某一个操作步 ...
- 在vim下写python 会出现python错误:unexpected unident
需要在.vimrc 的set tabstop=4的这一行上面增加 set expandtab 否则会报unexpected unident
- UVA127- "Accordian" Patience(模拟链表)
"Accordian" Patience You are to simulate the playing of games of ``Accordian'' patience, t ...
- 尚学堂 JAVA DAY11 概念总结
1.冒泡排序算法 <升序排列> 思路1: 数组长度为n,那么要对数组进行n-1次遍历; step 1---从数组的第一个数开始,两两比较,如果第一个数 > 第二个数,将二者进行交换: ...
- 集成对象和 JSON
想象一下,如果 NSDictionary,NSArray,NSString 呾 NSData 都提供方法 相亏转换 JSON 数据,返样丌径好举? 嗯,等等 – 我们正在使用 Objective-C, ...
- POJ 2001 Shortest Prefixes(字典树)
题目地址:POJ 2001 考察的字典树,利用的是建树时将每个点仅仅要走过就累加.最后从根节点開始遍历,当遍历到仅仅有1次走过的时候,就说明这个地方是最短的独立前缀.然后记录下长度,输出就可以. 代码 ...
- hdu 3037 Saving Beans(组合数学)
hdu 3037 Saving Beans 题目大意:n个数,和不大于m的情况,结果模掉p,p保证为素数. 解题思路:隔板法,C(nn+m)多选的一块保证了n个数的和小于等于m.可是n,m非常大,所以 ...