• XidianOJ 1055 如此遍历


    题目描述

    已知一个n*m的矩阵,希望你能按照下图所示的规律进行遍历,并把遍历的结果输出。

    对于如图,遍历的结果为:
    1 4 2 3 5 7 8 6 9

    输入

    多组数据

    每组数据第一行输入n,m(1<=n,m<=50),表示矩阵的大小。

    接下来n行,每行包括m个正整数,表示矩阵每行m个元素。

    输出

    输出遍历结果,并换行

    --正文

    直接模拟就好了,为了方便起见,开一个比较大的矩阵,来一些辅助的0

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int rect[1000][1000];
    int visit[1000][1000];
    int main(){
        int n,m;
        while (scanf("%d %d",&n,&m) != EOF){
            memset(rect,0,sizeof(rect));
            memset(visit,0,sizeof(visit));
            int i,j;
            for (i=1;i<=n;i++){
                for (j=1;j<=m;j++){
                    scanf("%d",&rect[i][j]);
                }
            }
            int nowx = 1,nowy = 1;
            int nowd = 1; // 1 down  2 right-up 3 right 4 left-down
            visit[1][1] = 1; printf("%d",rect[1][1]);
            while ( true ){
                if (rect[nowy][nowx] != 0 && !visit[nowy][nowx]) printf(" %d",rect[nowy][nowx]);
                visit[nowy][nowx] = 1;
                if (nowy == n && nowx == m) break;
                if (nowd == 1) {
                    nowy ++; nowd = 2; continue;
                }
                if (nowd == 2) {
                    if (nowy > 1) {
                        nowx ++; nowy --; continue; 
                    }
                    else {
                        nowd = 3; continue;
                    }
                }
                if (nowd == 3) {
                    nowx ++; nowd = 4; continue;
                }
                if (nowd == 4) {
                    if (nowx > 1) {
                        nowx --; nowy ++; continue; 
                    }
                    else {
                        nowd = 1; continue;
                    }
                }
            }
            printf("
    ");
        }
        return 0;
    } 
  • 相关阅读:
    线程安全及Python中的GIL
    八个我最常用的AS3开源类库(转)
    Mac 10.6与Win7 文件共享
    linux下erlang之OTP编译安装
    位图和矢量图区别
    让你的AIR程序脱离AIR环境运行
    outlook 0x80040201 错误
    NOSQL
    RLE压缩及优化图片压缩
    改正6种常见HTML5错误用法
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6143126.html
Copyright © 2020-2023  润新知