zoukankan      html  css  js  c++  java
  • 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;
    } 
  • 相关阅读:
    IOS
    WAN
    在不同网段使用 VLAN 通信
    数据链路层
    GRE 协议
    路由协议 (1)
    隔离广播域的 VLAN 来了
    数据包的通信过程
    Webpack 原理浅析
    蒲公英 · JELLY技术周刊 Vol.16 谷歌首个线上 Web 开发者大会
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6143126.html
Copyright © 2011-2022 走看看