刷清橙OJ--A1068.回形取数
来源:互联网 发布:淘宝固本安宫止血汤 编辑:程序博客网 时间:2024/06/05 20:00
问题:
A1068. 回形取数
时间限制:1.0s 内存限制:512.0MB
总提交次数:3132 AC次数:1137 平均分:64.37
问题描述
回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
输入格式
输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
输出格式
输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
样例输入
3 3
1 2 3
4 5 6
7 8 9
样例输出
1 4 7 8 9 6 3 2 5
样例输入
3 2
1 2
3 4
5 6
样例输出
1 3 5 6 4 2
代码:
#include<iostream>#include<string.h>using namespace std;int a[201][201],b[201][201];int n,m;int size = 0;int num = 0; int dfs(int x,int y){if(x>=n||y>=m||b[x][y] == 1||x<0||y<0){size = (size+1)%4;return 0;}else{cout<<a[x][y]<<' ';b[x][y] = 1;num++;}while(num != n*m){if(size == 0){dfs(x+1,y);}if(size == 1){dfs(x,y+1);}if(size == 2){dfs(x-1,y);}if(size == 3){dfs(x,y-1);}}return 0;} int main(){int i,j;memset(b,sizeof(b),0);cin>>n>>m;for(i=0;i<n;i++){for(j=0;j<m;j++){cin>>a[i][j];}}dfs(0,0);return 0;}
个人想法:代码来自试题讨论
阅读全文
0 0
- 刷清橙OJ--A1068.回形取数
- A1068. 回形取数
- 动态规划--PAT.A1068.Find More Coins【输出DP序列】
- 刷清橙OJ--A1045.交换
- 刷清橙OJ--A1046.加法器
- 刷清橙OJ--A1049.命题逻辑
- 刷清橙OJ--A1060.Archery
- 刷清橙OJ--A1080.Fibonacci
- 刷清橙OJ--A1093.闰年
- 刷清橙OJ--A1096.求子串
- 刷清橙OJ--A1097.独木桥
- OJ
- OJ
- OJ
- OJ
- OJ
- OJ
- oj
- 1046. 划拳(15)
- Eclipse中写jsp文件时,发现里面加载不了js文件和css文件(解决css文件在eclipse中显示不了)
- 图像处理之图像的边缘、轮廓检测
- python使用tesseract-ocr完成验证码识别
- jQuery系列之获得元素值(五)
- 刷清橙OJ--A1068.回形取数
- Log4j 配置使用
- Linux 2.6内核Makefile浅析
- 如何在命名空间中用use引入类、方法,并创建别名
- lintcode(122)直方图最大矩形覆盖
- Android Application启动流程分析
- android有了eventbus,一切与关界面通信问题迎刃而解。
- 如何封装一个通用的PopupWindow
- uva10305- Ordering Tasks(拓扑排序)